diff --git a/priv/static/base.css.map b/priv/static/base.css.map
index 83fceee6..463f369e 100644
--- a/priv/static/base.css.map
+++ b/priv/static/base.css.map
@@ -1 +1 @@
-{"mappings":"AEMA,2eAQA,4F,mBAME,sBAEF,yB,4E,gDAiBE,0LCKE,oCAGA,kF,iEASA,8B,+C,gD,mGA0BA,0LAcA,mSAmBA,4CAIA,wEAKA,kRAIA,mRAKI,kC,0E,uD,4FAsBJ,6C,iN,mDA2BA,kDAIA,0HAOA,uFAIA,6DAKA,mFAOI,uE,qC,uD,4F,uFA8BR,4GAMI,2B,4BAMA","sources":["base.css","css/base.sass","css/shared/reset/_reset.scss","node_modules/pikaday/scss/pikaday.scss","css/base/globals/_global.sass","css/shared/settings/_fonts.sass"],"sourcesContent":["html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n border: none;\n margin: 0;\n padding: 0;\n}\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after, q:before, q:after {\n content: \"\";\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n.pika-single {\n z-index: 9999;\n color: #333;\n background: #fff;\n border: 1px solid #ccc;\n border-bottom-color: #bbb;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n display: block;\n position: relative;\n}\n\n.pika-single.is-hidden {\n display: none;\n}\n\n.pika-single.is-bound {\n position: absolute;\n box-shadow: 0 5px 15px -5px rgba(0, 0, 0, .5);\n}\n\n.pika-single:before, .pika-single:after {\n content: \" \";\n display: table;\n}\n\n.pika-single:after {\n clear: both;\n}\n\n.pika-lendar {\n float: left;\n width: 240px;\n margin: 8px;\n}\n\n.pika-title {\n text-align: center;\n position: relative;\n}\n\n.pika-title select {\n cursor: pointer;\n z-index: 9998;\n opacity: 0;\n margin: 0;\n position: absolute;\n top: 5px;\n left: 0;\n}\n\n.pika-label {\n z-index: 9999;\n color: #333;\n background-color: #fff;\n margin: 0;\n padding: 5px 3px;\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n display: inline-block;\n position: relative;\n overflow: hidden;\n}\n\n.pika-prev, .pika-next {\n cursor: pointer;\n width: 20px;\n height: 30px;\n text-indent: 20px;\n white-space: nowrap;\n opacity: .5;\n background-color: rgba(0, 0, 0, 0);\n background-position: center;\n background-repeat: no-repeat;\n background-size: 75% 75%;\n border: none;\n outline: none;\n padding: 0;\n display: block;\n position: relative;\n overflow: hidden;\n}\n\n.pika-prev:hover, .pika-next:hover {\n opacity: 1;\n}\n\n.pika-prev.is-disabled, .pika-next.is-disabled {\n cursor: default;\n opacity: .2;\n}\n\n.pika-prev, .is-rtl .pika-next {\n float: left;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==\");\n}\n\n.pika-next, .is-rtl .pika-prev {\n float: right;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=\");\n}\n\n.pika-select {\n display: inline-block;\n}\n\n.pika-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: none;\n}\n\n.pika-table th, .pika-table td {\n width: 14.2857%;\n padding: 0;\n}\n\n.pika-table th {\n color: #999;\n text-align: center;\n font-size: 12px;\n font-weight: bold;\n line-height: 25px;\n}\n\n.pika-table abbr {\n cursor: help;\n border-bottom: none;\n}\n\n.pika-button {\n cursor: pointer;\n box-sizing: border-box;\n width: 100%;\n color: #666;\n text-align: right;\n height: initial;\n background: #f5f5f5;\n border: none;\n outline: none;\n margin: 0;\n padding: 5px;\n font-size: 12px;\n line-height: 15px;\n display: block;\n}\n\n.has-event .pika-button {\n color: #fff;\n background: #3af;\n}\n\n.is-today .pika-button {\n color: #3af;\n font-weight: bold;\n}\n\n.is-selected .pika-button {\n color: #fff;\n background: #3af;\n border-radius: 3px;\n font-weight: bold;\n box-shadow: inset 0 1px 3px #178fe5;\n}\n\n.is-disabled .pika-button, .is-outside-current-month .pika-button {\n color: #999;\n opacity: .3;\n}\n\n.is-disabled .pika-button {\n pointer-events: none;\n cursor: default;\n}\n\n.pika-button:hover {\n color: #fff;\n box-shadow: none;\n background: #ff8000;\n border-radius: 3px;\n}\n\n.pika-button .is-selection-disabled {\n pointer-events: none;\n cursor: default;\n}\n\n.pika-week {\n color: #999;\n font-size: 11px;\n}\n\n.is-inrange .pika-button {\n color: #666;\n background: #d5e9f7;\n}\n\n.is-startrange .pika-button {\n color: #fff;\n box-shadow: none;\n background: #6cb31d;\n border-radius: 3px;\n}\n\n.is-endrange .pika-button {\n color: #fff;\n box-shadow: none;\n background: #3af;\n border-radius: 3px;\n}\n\nhtml {\n min-height: 100vh;\n background: #eee;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-weight: normal;\n}\n\nhtml body {\n min-height: 100vh;\n}\n\nhtml a {\n text-decoration: none;\n}\n\nhtml .torch-container {\n flex: 1;\n margin: 0 auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n\n/*# sourceMappingURL=base.css.map */\n","// setup & base\n@import 'shared/bourbon/bourbon'\n@import 'shared/reset/reset'\n@import 'base/settings/grid'\n@import 'shared/flex-grid/flex-grid'\n@import \"~pikaday/scss/pikaday.scss\"\n\n// global styles\n@import 'shared/settings/colors'\n@import 'shared/settings/fonts'\n@import 'base/settings/grid'\n@import 'base/globals/global'\n@import 'base/components/account-info'\n@import 'base/components/nav'\n","/* BORROWED FROM: https://gist.github.com/hcatlin/1027867\n http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline; }\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &:before, &:after {\n content: '';\n content: none; } }\n\nq {\n &:before, &:after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }","/*!\n * Pikaday\n * Copyright © 2014 David Bushell | BSD & MIT license | https://dbushell.com/\n */\n\n// Variables\n// Declare any of these variables before importing this SCSS file to easily override defaults\n// Variables are namespaced with the pd (pikaday) prefix\n\n// Colours\n$pd-text-color: #333 !default;\n$pd-title-color: #333 !default;\n$pd-title-bg: #fff !default;\n$pd-picker-bg: #fff !default;\n$pd-picker-border: #ccc !default;\n$pd-picker-border-bottom: #bbb !default;\n$pd-picker-shadow: rgba(0,0,0,.5) !default;\n$pd-th-color: #999 !default;\n$pd-day-color: #666 !default;\n$pd-day-bg: #f5f5f5 !default;\n$pd-day-hover-color: #fff !default;\n$pd-day-hover-bg: #ff8000 !default;\n$pd-day-today-color: #33aaff !default;\n$pd-day-selected-color: #fff !default;\n$pd-day-selected-bg: #33aaff !default;\n$pd-day-selected-shadow: #178fe5 !default;\n$pd-day-disabled-color: #999 !default;\n$pd-week-color: #999 !default;\n$pd-inrange-color: #666 !default;\n$pd-inrange-bg: #D5E9F7 !default;\n$pd-startrange-color: #fff !default;\n$pd-startrange-bg: #6CB31D !default;\n$pd-endrange-color: #fff !default;\n$pd-endrange-bg: #33aaff !default;\n$pd-event-color: #fff !default;\n$pd-event-bg: #33aaff !default;\n\n$pd-z-index: 9999 !default;\n$pd-font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n$pd-border-radius: 3px !default;\n\n\n.pika-single {\n z-index: $pd-z-index;\n display: block;\n position: relative;\n color: $pd-text-color;\n background: $pd-picker-bg;\n border: 1px solid $pd-picker-border;\n border-bottom-color: $pd-picker-border-bottom;\n font-family: $pd-font-family;\n\n &.is-hidden {\n display: none;\n }\n\n &.is-bound {\n position: absolute;\n box-shadow: 0 5px 15px -5px $pd-picker-shadow;\n }\n}\n\n// clear child float (pika-lendar), using the famous micro clearfix hack\n// http://nicolasgallagher.com/micro-clearfix-hack/\n.pika-single {\n &:before,\n &:after {\n content: \" \";\n display: table;\n }\n\n &:after { clear: both }\n}\n\n.pika-lendar {\n float: left;\n width: 240px;\n margin: 8px;\n}\n\n.pika-title {\n position: relative;\n text-align: center;\n\n select {\n cursor: pointer;\n position: absolute;\n z-index: $pd-z-index - 1;\n margin: 0;\n left: 0;\n top: 5px;\n opacity: 0;\n }\n}\n\n.pika-label {\n display: inline-block;\n position: relative;\n z-index: $pd-z-index;\n overflow: hidden;\n margin: 0;\n padding: 5px 3px;\n font-size: 14px;\n line-height: 20px;\n font-weight: bold;\n color: $pd-title-color;\n background-color: $pd-title-bg;\n}\n\n.pika-prev,\n.pika-next {\n display: block;\n cursor: pointer;\n position: relative;\n outline: none;\n border: 0;\n padding: 0;\n width: 20px;\n height: 30px;\n text-indent: 20px; // hide text using text-indent trick, using width value (it's enough)\n white-space: nowrap;\n overflow: hidden;\n background-color: transparent;\n background-position: center center;\n background-repeat: no-repeat;\n background-size: 75% 75%;\n opacity: .5;\n\n &:hover {\n opacity: 1;\n }\n\n &.is-disabled {\n cursor: default;\n opacity: .2;\n }\n}\n\n.pika-prev,\n.is-rtl .pika-next {\n float: left;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==');\n}\n\n.pika-next,\n.is-rtl .pika-prev {\n float: right;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=');\n}\n\n.pika-select {\n display: inline-block;\n}\n\n.pika-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: 0;\n\n th,\n td {\n width: 14.285714285714286%;\n padding: 0;\n }\n\n th {\n color: $pd-th-color;\n font-size: 12px;\n line-height: 25px;\n font-weight: bold;\n text-align: center;\n }\n\n abbr {\n border-bottom: none;\n cursor: help;\n }\n}\n\n.pika-button {\n cursor: pointer;\n display: block;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n outline: none;\n border: 0;\n margin: 0;\n width: 100%;\n padding: 5px;\n color: $pd-day-color;\n font-size: 12px;\n line-height: 15px;\n text-align: right;\n background: $pd-day-bg;\n height: initial;\n\n .has-event & {\n color: $pd-event-color;\n background: $pd-event-bg;\n }\n\n .is-today & {\n color: $pd-day-today-color;\n font-weight: bold;\n }\n\n .is-selected & {\n color: $pd-day-selected-color;\n font-weight: bold;\n background: $pd-day-selected-bg;\n box-shadow: inset 0 1px 3px $pd-day-selected-shadow;\n border-radius: $pd-border-radius;\n }\n\n .is-disabled &,\n .is-outside-current-month & {\n color: $pd-day-disabled-color;\n opacity: .3;\n }\n\n .is-disabled & {\n pointer-events: none;\n cursor: default;\n }\n\n &:hover {\n color: $pd-day-hover-color;\n background: $pd-day-hover-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n }\n\n .is-selection-disabled {\n pointer-events: none;\n cursor: default;\n }\n}\n\n.pika-week {\n font-size: 11px;\n color: $pd-week-color;\n}\n\n.is-inrange .pika-button {\n color: $pd-inrange-color;\n background: $pd-inrange-bg;\n}\n\n.is-startrange .pika-button {\n color: $pd-startrange-color;\n background: $pd-startrange-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n}\n\n.is-endrange .pika-button {\n color: $pd-endrange-color;\n background: $pd-endrange-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n}\n","html\n background: $gallery-gray\n font-family: $helvetica-neue\n font-weight: normal\n min-height: 100vh\n\n body\n min-height: 100vh\n\n a\n text-decoration: none\n\n .torch-container\n flex: 1\n margin: 0 auto\n padding-right: 15px\n padding-left: 15px\n","$helvetica-neue: \"Helvetica Neue\",Helvetica,Arial,sans-serif"],"names":[],"version":3,"file":"base.css.map"}
\ No newline at end of file
+{"mappings":"AEMA,2eAUA,4FAGA,mBAGA,sBAGA,yBAIE,4EASF,gDCIA,0LAUI,oCAIA,kFASA,iEAMA,8BAGJ,+CAMA,gDAII,mGAWJ,0LAcA,mSAmBI,4CAIA,wEAMJ,kRAMA,mRAMA,kCAIA,0EAMI,uDAMA,4FAQA,6CAMJ,iNAiBI,mDAKA,kDAKA,0HAQA,uFAMA,6DAKA,mFAOA,uEAMJ,qCAKA,uDAKA,4FAOA,uFChQA,4GAME,2BAGA,4BAGA","sources":["base.css","css/base.sass","css/shared/reset/_reset.scss","node_modules/pikaday/scss/pikaday.scss","css/base/globals/_global.sass","css/shared/settings/_fonts.sass"],"sourcesContent":["html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n border: none;\n margin: 0;\n padding: 0;\n}\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after, q:before, q:after {\n content: \"\";\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n.pika-single {\n z-index: 9999;\n color: #333;\n background: #fff;\n border: 1px solid #ccc;\n border-bottom-color: #bbb;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n display: block;\n position: relative;\n}\n\n.pika-single.is-hidden {\n display: none;\n}\n\n.pika-single.is-bound {\n position: absolute;\n box-shadow: 0 5px 15px -5px rgba(0, 0, 0, .5);\n}\n\n.pika-single:before, .pika-single:after {\n content: \" \";\n display: table;\n}\n\n.pika-single:after {\n clear: both;\n}\n\n.pika-lendar {\n float: left;\n width: 240px;\n margin: 8px;\n}\n\n.pika-title {\n text-align: center;\n position: relative;\n}\n\n.pika-title select {\n cursor: pointer;\n z-index: 9998;\n opacity: 0;\n margin: 0;\n position: absolute;\n top: 5px;\n left: 0;\n}\n\n.pika-label {\n z-index: 9999;\n color: #333;\n background-color: #fff;\n margin: 0;\n padding: 5px 3px;\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n display: inline-block;\n position: relative;\n overflow: hidden;\n}\n\n.pika-prev, .pika-next {\n cursor: pointer;\n width: 20px;\n height: 30px;\n text-indent: 20px;\n white-space: nowrap;\n opacity: .5;\n background-color: rgba(0, 0, 0, 0);\n background-position: center;\n background-repeat: no-repeat;\n background-size: 75% 75%;\n border: none;\n outline: none;\n padding: 0;\n display: block;\n position: relative;\n overflow: hidden;\n}\n\n.pika-prev:hover, .pika-next:hover {\n opacity: 1;\n}\n\n.pika-prev.is-disabled, .pika-next.is-disabled {\n cursor: default;\n opacity: .2;\n}\n\n.pika-prev, .is-rtl .pika-next {\n float: left;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==\");\n}\n\n.pika-next, .is-rtl .pika-prev {\n float: right;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=\");\n}\n\n.pika-select {\n display: inline-block;\n}\n\n.pika-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: none;\n}\n\n.pika-table th, .pika-table td {\n width: 14.2857%;\n padding: 0;\n}\n\n.pika-table th {\n color: #999;\n text-align: center;\n font-size: 12px;\n font-weight: bold;\n line-height: 25px;\n}\n\n.pika-table abbr {\n cursor: help;\n border-bottom: none;\n}\n\n.pika-button {\n cursor: pointer;\n box-sizing: border-box;\n width: 100%;\n color: #666;\n text-align: right;\n height: initial;\n background: #f5f5f5;\n border: none;\n outline: none;\n margin: 0;\n padding: 5px;\n font-size: 12px;\n line-height: 15px;\n display: block;\n}\n\n.has-event .pika-button {\n color: #fff;\n background: #3af;\n}\n\n.is-today .pika-button {\n color: #3af;\n font-weight: bold;\n}\n\n.is-selected .pika-button {\n color: #fff;\n background: #3af;\n border-radius: 3px;\n font-weight: bold;\n box-shadow: inset 0 1px 3px #178fe5;\n}\n\n.is-disabled .pika-button, .is-outside-current-month .pika-button {\n color: #999;\n opacity: .3;\n}\n\n.is-disabled .pika-button {\n pointer-events: none;\n cursor: default;\n}\n\n.pika-button:hover {\n color: #fff;\n box-shadow: none;\n background: #ff8000;\n border-radius: 3px;\n}\n\n.pika-button .is-selection-disabled {\n pointer-events: none;\n cursor: default;\n}\n\n.pika-week {\n color: #999;\n font-size: 11px;\n}\n\n.is-inrange .pika-button {\n color: #666;\n background: #d5e9f7;\n}\n\n.is-startrange .pika-button {\n color: #fff;\n box-shadow: none;\n background: #6cb31d;\n border-radius: 3px;\n}\n\n.is-endrange .pika-button {\n color: #fff;\n box-shadow: none;\n background: #3af;\n border-radius: 3px;\n}\n\nhtml {\n min-height: 100vh;\n background: #eee;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-weight: normal;\n}\n\nhtml body {\n min-height: 100vh;\n}\n\nhtml a {\n text-decoration: none;\n}\n\nhtml .torch-container {\n flex: 1;\n margin: 0 auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n\n/*# sourceMappingURL=base.css.map */\n","// setup & base\n@import 'shared/bourbon/bourbon'\n@import 'shared/reset/reset'\n@import 'base/settings/grid'\n@import 'shared/flex-grid/flex-grid'\n@import \"~pikaday/scss/pikaday.scss\"\n\n// global styles\n@import 'shared/settings/colors'\n@import 'shared/settings/fonts'\n@import 'base/settings/grid'\n@import 'base/globals/global'\n@import 'base/components/account-info'\n@import 'base/components/nav'\n","/* BORROWED FROM: https://gist.github.com/hcatlin/1027867\n http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline; }\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &:before, &:after {\n content: '';\n content: none; } }\n\nq {\n &:before, &:after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }","/*!\n * Pikaday\n * Copyright © 2014 David Bushell | BSD & MIT license | https://dbushell.com/\n */\n\n// Variables\n// Declare any of these variables before importing this SCSS file to easily override defaults\n// Variables are namespaced with the pd (pikaday) prefix\n\n// Colours\n$pd-text-color: #333 !default;\n$pd-title-color: #333 !default;\n$pd-title-bg: #fff !default;\n$pd-picker-bg: #fff !default;\n$pd-picker-border: #ccc !default;\n$pd-picker-border-bottom: #bbb !default;\n$pd-picker-shadow: rgba(0,0,0,.5) !default;\n$pd-th-color: #999 !default;\n$pd-day-color: #666 !default;\n$pd-day-bg: #f5f5f5 !default;\n$pd-day-hover-color: #fff !default;\n$pd-day-hover-bg: #ff8000 !default;\n$pd-day-today-color: #33aaff !default;\n$pd-day-selected-color: #fff !default;\n$pd-day-selected-bg: #33aaff !default;\n$pd-day-selected-shadow: #178fe5 !default;\n$pd-day-disabled-color: #999 !default;\n$pd-week-color: #999 !default;\n$pd-inrange-color: #666 !default;\n$pd-inrange-bg: #D5E9F7 !default;\n$pd-startrange-color: #fff !default;\n$pd-startrange-bg: #6CB31D !default;\n$pd-endrange-color: #fff !default;\n$pd-endrange-bg: #33aaff !default;\n$pd-event-color: #fff !default;\n$pd-event-bg: #33aaff !default;\n\n$pd-z-index: 9999 !default;\n$pd-font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n$pd-border-radius: 3px !default;\n\n\n.pika-single {\n z-index: $pd-z-index;\n display: block;\n position: relative;\n color: $pd-text-color;\n background: $pd-picker-bg;\n border: 1px solid $pd-picker-border;\n border-bottom-color: $pd-picker-border-bottom;\n font-family: $pd-font-family;\n\n &.is-hidden {\n display: none;\n }\n\n &.is-bound {\n position: absolute;\n box-shadow: 0 5px 15px -5px $pd-picker-shadow;\n }\n}\n\n// clear child float (pika-lendar), using the famous micro clearfix hack\n// http://nicolasgallagher.com/micro-clearfix-hack/\n.pika-single {\n &:before,\n &:after {\n content: \" \";\n display: table;\n }\n\n &:after { clear: both }\n}\n\n.pika-lendar {\n float: left;\n width: 240px;\n margin: 8px;\n}\n\n.pika-title {\n position: relative;\n text-align: center;\n\n select {\n cursor: pointer;\n position: absolute;\n z-index: $pd-z-index - 1;\n margin: 0;\n left: 0;\n top: 5px;\n opacity: 0;\n }\n}\n\n.pika-label {\n display: inline-block;\n position: relative;\n z-index: $pd-z-index;\n overflow: hidden;\n margin: 0;\n padding: 5px 3px;\n font-size: 14px;\n line-height: 20px;\n font-weight: bold;\n color: $pd-title-color;\n background-color: $pd-title-bg;\n}\n\n.pika-prev,\n.pika-next {\n display: block;\n cursor: pointer;\n position: relative;\n outline: none;\n border: 0;\n padding: 0;\n width: 20px;\n height: 30px;\n text-indent: 20px; // hide text using text-indent trick, using width value (it's enough)\n white-space: nowrap;\n overflow: hidden;\n background-color: transparent;\n background-position: center center;\n background-repeat: no-repeat;\n background-size: 75% 75%;\n opacity: .5;\n\n &:hover {\n opacity: 1;\n }\n\n &.is-disabled {\n cursor: default;\n opacity: .2;\n }\n}\n\n.pika-prev,\n.is-rtl .pika-next {\n float: left;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==');\n}\n\n.pika-next,\n.is-rtl .pika-prev {\n float: right;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=');\n}\n\n.pika-select {\n display: inline-block;\n}\n\n.pika-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: 0;\n\n th,\n td {\n width: 14.285714285714286%;\n padding: 0;\n }\n\n th {\n color: $pd-th-color;\n font-size: 12px;\n line-height: 25px;\n font-weight: bold;\n text-align: center;\n }\n\n abbr {\n border-bottom: none;\n cursor: help;\n }\n}\n\n.pika-button {\n cursor: pointer;\n display: block;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n outline: none;\n border: 0;\n margin: 0;\n width: 100%;\n padding: 5px;\n color: $pd-day-color;\n font-size: 12px;\n line-height: 15px;\n text-align: right;\n background: $pd-day-bg;\n height: initial;\n\n .has-event & {\n color: $pd-event-color;\n background: $pd-event-bg;\n }\n\n .is-today & {\n color: $pd-day-today-color;\n font-weight: bold;\n }\n\n .is-selected & {\n color: $pd-day-selected-color;\n font-weight: bold;\n background: $pd-day-selected-bg;\n box-shadow: inset 0 1px 3px $pd-day-selected-shadow;\n border-radius: $pd-border-radius;\n }\n\n .is-disabled &,\n .is-outside-current-month & {\n color: $pd-day-disabled-color;\n opacity: .3;\n }\n\n .is-disabled & {\n pointer-events: none;\n cursor: default;\n }\n\n &:hover {\n color: $pd-day-hover-color;\n background: $pd-day-hover-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n }\n\n .is-selection-disabled {\n pointer-events: none;\n cursor: default;\n }\n}\n\n.pika-week {\n font-size: 11px;\n color: $pd-week-color;\n}\n\n.is-inrange .pika-button {\n color: $pd-inrange-color;\n background: $pd-inrange-bg;\n}\n\n.is-startrange .pika-button {\n color: $pd-startrange-color;\n background: $pd-startrange-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n}\n\n.is-endrange .pika-button {\n color: $pd-endrange-color;\n background: $pd-endrange-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n}\n","html\n background: $gallery-gray\n font-family: $helvetica-neue\n font-weight: normal\n min-height: 100vh\n\n body\n min-height: 100vh\n\n a\n text-decoration: none\n\n .torch-container\n flex: 1\n margin: 0 auto\n padding-right: 15px\n padding-left: 15px\n","$helvetica-neue: \"Helvetica Neue\",Helvetica,Arial,sans-serif"],"names":[],"version":3,"file":"base.css.map"}
\ No newline at end of file
diff --git a/priv/static/theme.css.map b/priv/static/theme.css.map
index d719e451..cc261824 100644
--- a/priv/static/theme.css.map
+++ b/priv/static/theme.css.map
@@ -1 +1 @@
-{"mappings":"AEMA,2eAQA,4F,mBAME,sBAEF,yB,4E,gDAiBE,0LCKE,oCAGA,kF,iEASA,8B,+C,gD,mGA0BA,0LAcA,mSAmBA,4CAIA,wEAKA,kRAIA,mRAKI,kC,0E,uD,4FAsBJ,6C,iN,mDA2BA,kDAIA,0HAOA,uFAIA,6DAKA,mFAOI,uE,qC,uD,4F,uFA8BR,4GAMI,2B,4BAMA,yEAKJ,yLC/PE,gXAWA,iFAGE,0FEfJ,gI,iIAOE,+aEQA,oM,0FASE,4iB,2rBErBF,qECHF,0LAOE,wEAGA,2C,gDAIA,4CAEE,6C,gLCTA,2M,0C,uICEA,gDAGE,sEAIE,oC,wEAOA,2IAOJ,wJ,4D,oEAcI,oEC5CR,wNAYI,+JAQE,4EAGE,8EAGA,mLASA,oEAGA,oEAGA,kEAIA,gEAIA,6E,0C,kDAYF,4DAIA,mDAGA,kJAQE,yDAIA,6CC7EJ,2EAMA,uD,qDCPF,gFAIE,iFAGA,6CAGA,uDAIA,yCAIE,8JAWA,6DAIA,yE,wD,gK,uE,mEC3BA,qFAIA,kEAGE,gE,uHCZJ,oGASA,2NAYE,4JCvBJ,4IAOE,8FAMA,yE,kFAOE,oEAIA,yEAIF,uDAYA,kCAGE,yE,6EAOF,+EAIE,qEAGA,gDAIF,mFAKA,yECnEJ,wEAGE,2EAIE,4OCOE,6EAGE,6FCdN,2EAGE,oHAKA,2G,2GAQE,2GAGA,8NAME,8I,gF,wDCfA,uEAIA,mEAIA,iJAOI,8DAGA","sources":["theme.css","css/theme.sass","css/shared/reset/_reset.scss","node_modules/pikaday/scss/pikaday.scss","css/theme/globals/_global.sass","css/shared/settings/_fonts.sass","css/theme/_extends/_typography.sass","css/shared/settings/_colors.sass","css/theme/_extends/_buttons.sass","css/theme/_extends/_select-input.sass","css/theme/_extends/_label.sass","css/theme/_extends/_text-input.sass","css/theme/components/_account-info.sass","css/theme/components/_nav.sass","css/theme/components/_table.sass","css/theme/components/_toolbar.sass","css/theme/components/_filters.sass","css/theme/components/_pagination.sass","css/theme/components/_header-and-content.sass","css/theme/components/_form.sass","css/theme/components/_panel.sass","css/theme/components/_datepicker.sass","css/theme/components/_flash-messages.sass","css/theme/pages/_index.sass","css/theme/pages/_show.sass","css/theme/pages/_edit.sass","css/theme/pages/_new.sass"],"sourcesContent":["html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n border: none;\n margin: 0;\n padding: 0;\n}\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after, q:before, q:after {\n content: \"\";\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n.pika-single {\n z-index: 9999;\n color: #333;\n background: #fff;\n border: 1px solid #ccc;\n border-bottom-color: #bbb;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n display: block;\n position: relative;\n}\n\n.pika-single.is-hidden {\n display: none;\n}\n\n.pika-single.is-bound {\n position: absolute;\n box-shadow: 0 5px 15px -5px rgba(0, 0, 0, .5);\n}\n\n.pika-single:before, .pika-single:after {\n content: \" \";\n display: table;\n}\n\n.pika-single:after {\n clear: both;\n}\n\n.pika-lendar {\n float: left;\n width: 240px;\n margin: 8px;\n}\n\n.pika-title {\n text-align: center;\n position: relative;\n}\n\n.pika-title select {\n cursor: pointer;\n z-index: 9998;\n opacity: 0;\n margin: 0;\n position: absolute;\n top: 5px;\n left: 0;\n}\n\n.pika-label {\n z-index: 9999;\n color: #333;\n background-color: #fff;\n margin: 0;\n padding: 5px 3px;\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n display: inline-block;\n position: relative;\n overflow: hidden;\n}\n\n.pika-prev, .pika-next {\n cursor: pointer;\n width: 20px;\n height: 30px;\n text-indent: 20px;\n white-space: nowrap;\n opacity: .5;\n background-color: rgba(0, 0, 0, 0);\n background-position: center;\n background-repeat: no-repeat;\n background-size: 75% 75%;\n border: none;\n outline: none;\n padding: 0;\n display: block;\n position: relative;\n overflow: hidden;\n}\n\n.pika-prev:hover, .pika-next:hover {\n opacity: 1;\n}\n\n.pika-prev.is-disabled, .pika-next.is-disabled {\n cursor: default;\n opacity: .2;\n}\n\n.pika-prev, .is-rtl .pika-next {\n float: left;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==\");\n}\n\n.pika-next, .is-rtl .pika-prev {\n float: right;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=\");\n}\n\n.pika-select {\n display: inline-block;\n}\n\n.pika-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: none;\n}\n\n.pika-table th, .pika-table td {\n width: 14.2857%;\n padding: 0;\n}\n\n.pika-table th {\n color: #999;\n text-align: center;\n font-size: 12px;\n font-weight: bold;\n line-height: 25px;\n}\n\n.pika-table abbr {\n cursor: help;\n border-bottom: none;\n}\n\n.pika-button {\n cursor: pointer;\n box-sizing: border-box;\n width: 100%;\n color: #666;\n text-align: right;\n height: initial;\n background: #f5f5f5;\n border: none;\n outline: none;\n margin: 0;\n padding: 5px;\n font-size: 12px;\n line-height: 15px;\n display: block;\n}\n\n.has-event .pika-button {\n color: #fff;\n background: #3af;\n}\n\n.is-today .pika-button {\n color: #3af;\n font-weight: bold;\n}\n\n.is-selected .pika-button {\n color: #fff;\n background: #3af;\n border-radius: 3px;\n font-weight: bold;\n box-shadow: inset 0 1px 3px #178fe5;\n}\n\n.is-disabled .pika-button, .is-outside-current-month .pika-button {\n color: #999;\n opacity: .3;\n}\n\n.is-disabled .pika-button {\n pointer-events: none;\n cursor: default;\n}\n\n.pika-button:hover {\n color: #fff;\n box-shadow: none;\n background: #ff8000;\n border-radius: 3px;\n}\n\n.pika-button .is-selection-disabled {\n pointer-events: none;\n cursor: default;\n}\n\n.pika-week {\n color: #999;\n font-size: 11px;\n}\n\n.is-inrange .pika-button {\n color: #666;\n background: #d5e9f7;\n}\n\n.is-startrange .pika-button {\n color: #fff;\n box-shadow: none;\n background: #6cb31d;\n border-radius: 3px;\n}\n\n.is-endrange .pika-button {\n color: #fff;\n box-shadow: none;\n background: #3af;\n border-radius: 3px;\n}\n\nhtml {\n min-height: 100vh;\n background: #eee;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-weight: normal;\n}\n\nhtml body {\n min-height: 100vh;\n}\n\nhtml a {\n text-decoration: none;\n}\n\nhtml .torch-container {\n margin: 0 auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n\n.torch-panel legend, section#torch-header-and-content .header h3, section#torch-filters h3 {\n color: #666;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 16px;\n font-weight: bold;\n}\n\nform#torch-form .torch-submit-form .torch-submit-button, section#torch-table table td button, section#torch-filters button, section#torch-toolbar a {\n cursor: pointer;\n color: #666;\n text-transform: capitalize;\n background-color: #eee;\n border: 1px solid rgba(0, 0, 0, 0);\n padding: 9px 12px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n transition: all .25s ease-in-out;\n}\n\nsection#torch-filters button, section#torch-toolbar a {\n border-color: rgba(0, 0, 0, .1);\n}\n\nsection#torch-filters button:hover, section#torch-toolbar a:hover {\n background-color: #c8c8c8;\n}\n\nform#torch-form .torch-submit-form .torch-submit-button, section#torch-table table td button {\n color: #fff;\n background-color: #e73536;\n}\n\nform#torch-form .torch-submit-form .torch-submit-button:hover, section#torch-table table td button:hover {\n background-color: #b91617;\n}\n\nform#torch-form .torch-form-group select, section#torch-filters .field select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n color: #666;\n background: #fff url(\"down-arrow.e17911d3.png\") 94% / 17px no-repeat;\n border: 1px solid #d5d5d5;\n border-radius: 0;\n outline: none;\n margin: 0;\n padding: 9px 25px 9px 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n transition: all .35s ease-in-out;\n display: block;\n}\n\nform#torch-form .torch-form-group select:focus, section#torch-filters .field select:focus, form#torch-form .torch-form-group select:hover, section#torch-filters .field select:hover {\n border-color: #666;\n}\n\nsection#torch-filters .field label {\n color: #666;\n padding: 10px 0;\n font-size: 14px;\n display: block;\n}\n\nform#torch-form .torch-form-group input[type=\"number\"], form#torch-form .torch-form-group input[type=\"text\"], form#torch-form .torch-form-group input[type=\"password\"], form#torch-form .torch-form-group textarea, section#torch-filters .field input[type=\"text\"], section#torch-filters .field input[type=\"number\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n color: #666;\n background: #fff;\n border: 1px solid #d5d5d5;\n outline: none;\n margin: 0;\n padding: 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n transition: all .35s ease-in-out;\n display: block;\n}\n\nform#torch-form .torch-form-group input[type=\"number\"]:focus, form#torch-form .torch-form-group input[type=\"text\"]:focus, form#torch-form .torch-form-group input[type=\"password\"]:focus, form#torch-form .torch-form-group textarea:focus, section#torch-filters .field input[type=\"text\"]:focus, section#torch-filters .field input[type=\"number\"]:focus, form#torch-form .torch-form-group input[type=\"number\"]:hover, form#torch-form .torch-form-group input[type=\"text\"]:hover, form#torch-form .torch-form-group input[type=\"password\"]:hover, form#torch-form .torch-form-group textarea:hover, section#torch-filters .field input[type=\"text\"]:hover, section#torch-filters .field input[type=\"number\"]:hover {\n border-width: 1px;\n border-color: #666;\n}\n\nsection#torch-account-info {\n text-align: right;\n background-color: #e73536;\n}\n\nsection#torch-account-info a {\n color: #fff;\n border-right: 1px solid #fff;\n margin: 6px 0;\n padding: 0 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n display: inline-block;\n}\n\nsection#torch-account-info .torch-container a:last-child {\n border-right: none;\n}\n\nsection#torch-nav {\n background-color: #fafafa;\n}\n\nsection#torch-nav .torch-container {\n display: flex;\n}\n\nsection#torch-nav .torch-logo {\n padding: 6px 0;\n}\n\nsection#torch-nav .torch-logo a {\n display: flex;\n}\n\nsection#torch-nav .torch-logo a h3 {\n color: #e73536;\n text-transform: uppercase;\n margin: 15px 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 18px;\n font-weight: bold;\n}\n\nsection#torch-nav .torch-logo a:before {\n content: \" \";\n width: 50px;\n height: 50px;\n background-image: url(\"torch-logo.a963df87.png\");\n background-repeat: no-repeat;\n background-size: contain;\n display: block;\n}\n\nsection#torch-nav .torch-nav {\n display: flex;\n}\n\nsection#torch-nav .torch-nav a {\n color: #a6a6a6;\n border-bottom: 3px solid rgba(0, 0, 0, 0);\n padding: 22px 10px 19px;\n font-size: 16px;\n display: block;\n}\n\nsection#torch-nav .torch-nav a:hover {\n color: #666;\n}\n\nsection#torch-nav .torch-nav a.active {\n color: #666;\n border-color: #e73536;\n}\n\nsection#torch-table {\n overflow-x: auto;\n}\n\nsection#torch-table .torch-no-data {\n text-transform: capitalize;\n color: #666;\n}\n\nsection#torch-table table {\n color: #666;\n width: 100%;\n background-color: #fff;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n}\n\nsection#torch-table table th {\n color: #666;\n vertical-align: middle;\n background-color: #fafafa;\n border-top: 1px solid #eee;\n border-bottom: 1px solid #eee;\n padding: 0;\n}\n\nsection#torch-table table th:hover {\n background-color: #d4d4d4;\n}\n\nsection#torch-table table th:first-child {\n border-left: 1px solid #eee;\n}\n\nsection#torch-table table th:last-child {\n border-right: 1px solid #eee;\n}\n\nsection#torch-table table th .caret {\n height: 0;\n width: 0;\n border-left: 5px solid rgba(0, 0, 0, 0);\n border-right: 5px solid rgba(0, 0, 0, 0);\n margin-top: 5px;\n margin-left: 5px;\n display: inline-block;\n position: absolute;\n top: 12px;\n right: 10px;\n}\n\nsection#torch-table table th a, section#torch-table table th span:not(.caret) {\n color: #666;\n padding: 12px 10px;\n text-decoration: none;\n display: block;\n position: relative;\n}\n\nsection#torch-table table th a.active.desc .caret {\n border-top: 5px solid #666;\n}\n\nsection#torch-table table th a.active.asc .caret {\n border-bottom: 5px solid #666;\n}\n\nsection#torch-table table td {\n text-overflow: ellipsis;\n vertical-align: middle;\n max-width: 300px;\n border-top: 1px solid #eee;\n border-bottom: 1px solid #eee;\n padding: 15px 10px;\n overflow: hidden;\n}\n\nsection#torch-table table td:first-child {\n border-left: 1px solid #eee;\n}\n\nsection#torch-table table td:last-child {\n border-right: 1px solid #eee;\n}\n\nsection#torch-table table td a {\n color: #e73536;\n text-decoration: none;\n}\n\nsection#torch-table table td img {\n max-height: 30px;\n max-width: 30px;\n}\n\nsection#torch-toolbar .torch-container {\n justify-content: flex-end;\n display: flex;\n}\n\nsection#torch-toolbar a {\n margin-right: 20px;\n}\n\nsection#torch-toolbar a:last-child {\n margin-right: 0;\n}\n\nsection#torch-filters {\n background-color: #fafafa;\n padding: 20px;\n}\n\nsection#torch-filters h3 {\n text-transform: capitalize;\n}\n\nsection#torch-filters hr {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: none;\n border-bottom: 1px solid #d5d5d5;\n margin: 20px 0 10px;\n}\n\nsection#torch-filters .field {\n flex-wrap: wrap;\n display: flex;\n}\n\nsection#torch-filters .field label {\n flex: 100%;\n}\n\nsection#torch-filters .field select {\n max-width: 30%;\n flex: 1;\n margin-right: 20px;\n}\n\nsection#torch-filters .field input[type=\"number\"] {\n flex: 3;\n}\n\nsection#torch-filters .field input[type=\"text\"] {\n flex: 3;\n}\n\nsection#torch-filters .field input[type=\"text\"].datepicker {\n width: calc(50% - 10px);\n}\n\nsection#torch-filters .field input[type=\"text\"].datepicker.start {\n margin-right: 20px;\n}\n\nsection#torch-filters button {\n margin-top: 10px;\n}\n\nsection#torch-filters a {\n color: #e73536;\n margin-left: 20px;\n}\n\nsection#torch-pagination ul {\n display: flex;\n}\n\nsection#torch-pagination li a {\n color: #e73536;\n background-color: #fff;\n border: 1px solid #eee;\n margin-left: -1px;\n padding: 10px 15px;\n text-decoration: none;\n display: block;\n}\n\nsection#torch-pagination li a:hover {\n background-color: #fafafa;\n}\n\nsection#torch-pagination li a.active {\n color: #fff;\n background-color: #e73536;\n}\n\nsection#torch-pagination li:first-child a {\n margin-left: 0;\n}\n\nsection#torch-header-and-content .header {\n background-color: #fafafa;\n border-top: 4px solid #e73536;\n border-bottom: 1px solid #eee;\n border-radius: 3px;\n padding: 15px 20px;\n}\n\nsection#torch-header-and-content ul {\n background-color: #fff;\n padding: 20px;\n}\n\nsection#torch-header-and-content ul li {\n padding: 10px 0;\n display: flex;\n}\n\nsection#torch-header-and-content ul li .torch-show-label {\n width: 20%;\n text-align: center;\n}\n\nsection#torch-header-and-content ul li .torch-show-data {\n width: 80%;\n}\n\nform#torch-form {\n background-color: #fff;\n padding: 20px;\n display: flex;\n}\n\nform#torch-form .torch-form-error {\n color: #fff;\n text-align: center;\n background-color: #f6bb42;\n margin-bottom: 20px;\n padding: 5px;\n}\n\nform#torch-form .torch-form-group {\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 20px;\n display: flex;\n}\n\nform#torch-form .torch-form-group label {\n color: #666;\n text-align: right;\n flex: 1;\n justify-content: flex-end;\n align-items: center;\n margin-right: 20px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 15px;\n display: flex;\n}\n\nform#torch-form .torch-form-group input[type=\"text\"], form#torch-form .torch-form-group input[type=\"password\"], form#torch-form .torch-form-group textarea {\n flex: 1;\n}\n\nform#torch-form .torch-form-group .help-block {\n width: 70%;\n text-transform: capitalize;\n color: #f6bb42;\n margin-left: calc(30% + 12px);\n font-size: 14px;\n}\n\nform#torch-form .torch-form-group-input {\n flex-wrap: wrap;\n flex: 3;\n align-items: center;\n display: flex;\n}\n\nform#torch-form .torch-form-group-input select:first-child {\n margin-left: 0;\n}\n\nform#torch-form .torch-form-group-input select {\n margin-left: .5em;\n margin-right: .5em;\n}\n\nform#torch-form .torch-form-group-input .invalid-feedback {\n flex: 100%;\n}\n\nform#torch-form .torch-submit-form {\n justify-content: flex-end;\n display: flex;\n}\n\n.torch-panel {\n border: 2px solid #eee;\n flex: 1;\n padding: 25px;\n}\n\n.torch-panel legend {\n padding: 0 6px;\n}\n\n.torch-datepicker .is-today:not(.is-selected) .pika-button {\n color: #e73536;\n}\n\n.torch-datepicker .pika-button:hover {\n background: #e73536;\n color: #fff !important;\n}\n\n.torch-datepicker .is-selected .pika-button {\n box-shadow: none;\n background: #e73536;\n}\n\n.torch-datepicker .is-selected .pika-button:hover {\n background: #e73536;\n}\n\nsection#torch-flash-messages {\n margin-bottom: 20px;\n}\n\nsection#torch-flash-messages .torch-flash {\n text-align: center;\n color: #fff;\n padding: 8px;\n}\n\nsection#torch-flash-messages .torch-flash.error {\n background-color: #f6bb42;\n}\n\nsection#torch-flash-messages .torch-flash.info {\n background-color: #4a89dc;\n}\n\nsection#torch-flash-messages .torch-flash.success {\n background-color: #70ca63;\n}\n\nsection#torch-flash-messages .torch-flash .torch-flash-close {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: inherit;\n color: #fff;\n width: 22px;\n height: 22px;\n cursor: pointer;\n border: 1px solid #fff;\n border-radius: 50%;\n}\n\nsection#torch-flash-messages .torch-flash .torch-flash-close:focus {\n outline: none;\n}\n\nbody.torch-index section#torch-nav, body.torch-index section#torch-toolbar {\n margin-bottom: 20px;\n}\n\nbody.torch-index section#torch-index-content .torch-container {\n display: flex;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-filters {\n flex: 1;\n order: 2;\n margin-left: 35px;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-table {\n width: 70%;\n flex: 3;\n order: 1;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-table table {\n margin-bottom: 20px;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-table table th {\n text-align: left;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-table table th:last-child, body.torch-index section#torch-index-content .torch-container section#torch-table table .torch-actions {\n text-align: right;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-pagination {\n justify-content: center;\n margin-bottom: 20px;\n display: flex;\n}\n\nbody.torch-show header, body.torch-show section#torch-toolbar {\n margin-bottom: 20px;\n}\n\nbody.torch-show .torch-container header {\n margin-bottom: 0;\n}\n\nbody.torch-show .torch-show-details {\n background-color: #fff;\n padding: 20px;\n}\n\nbody.torch-show .torch-show-attribute {\n padding: .5rem 0;\n display: flex;\n}\n\nbody.torch-show .torch-show-attribute .torch-show-label {\n text-align: right;\n border-right: 1px solid #666;\n flex: 1;\n margin-right: 1rem;\n padding-right: 1rem;\n}\n\nbody.torch-show .torch-show-attribute .torch-show-data {\n flex: 4;\n}\n\nbody.torch-edit header, body.torch-update header, body.torch-edit section#torch-toolbar, body.torch-update section#torch-toolbar, body.torch-new header, body.torch-create header, body.torch-new section#torch-toolbar, body.torch-create section#torch-toolbar {\n margin-bottom: 20px;\n}\n\n/*# sourceMappingURL=theme.css.map */\n","// setup & base\n@import 'shared/bourbon/bourbon'\n@import 'shared/reset/reset'\n@import 'theme/settings/grid'\n@import 'shared/flex-grid/flex-grid'\n@import \"~pikaday/scss/pikaday.scss\"\n\n// global styles\n@import 'shared/settings/colors'\n@import 'shared/settings/fonts'\n@import 'theme/globals/global'\n\n// component styles\n@import 'theme/_extends/typography'\n@import 'theme/_extends/buttons'\n@import 'theme/_extends/select-input'\n@import 'theme/_extends/label'\n@import 'theme/_extends/text-input'\n\n@import 'theme/components/account-info'\n@import 'theme/components/nav'\n@import 'theme/components/table'\n@import 'theme/components/toolbar'\n@import 'theme/components/filters'\n@import 'theme/components/pagination'\n@import 'theme/components/header-and-content'\n@import 'theme/components/form'\n@import 'theme/components/panel'\n@import 'theme/components/datepicker'\n@import 'theme/components/flash-messages'\n\n// page styles\n@import 'theme/pages/index'\n@import 'theme/pages/show'\n@import 'theme/pages/edit'\n@import 'theme/pages/new'\n","/* BORROWED FROM: https://gist.github.com/hcatlin/1027867\n http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline; }\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &:before, &:after {\n content: '';\n content: none; } }\n\nq {\n &:before, &:after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }","/*!\n * Pikaday\n * Copyright © 2014 David Bushell | BSD & MIT license | https://dbushell.com/\n */\n\n// Variables\n// Declare any of these variables before importing this SCSS file to easily override defaults\n// Variables are namespaced with the pd (pikaday) prefix\n\n// Colours\n$pd-text-color: #333 !default;\n$pd-title-color: #333 !default;\n$pd-title-bg: #fff !default;\n$pd-picker-bg: #fff !default;\n$pd-picker-border: #ccc !default;\n$pd-picker-border-bottom: #bbb !default;\n$pd-picker-shadow: rgba(0,0,0,.5) !default;\n$pd-th-color: #999 !default;\n$pd-day-color: #666 !default;\n$pd-day-bg: #f5f5f5 !default;\n$pd-day-hover-color: #fff !default;\n$pd-day-hover-bg: #ff8000 !default;\n$pd-day-today-color: #33aaff !default;\n$pd-day-selected-color: #fff !default;\n$pd-day-selected-bg: #33aaff !default;\n$pd-day-selected-shadow: #178fe5 !default;\n$pd-day-disabled-color: #999 !default;\n$pd-week-color: #999 !default;\n$pd-inrange-color: #666 !default;\n$pd-inrange-bg: #D5E9F7 !default;\n$pd-startrange-color: #fff !default;\n$pd-startrange-bg: #6CB31D !default;\n$pd-endrange-color: #fff !default;\n$pd-endrange-bg: #33aaff !default;\n$pd-event-color: #fff !default;\n$pd-event-bg: #33aaff !default;\n\n$pd-z-index: 9999 !default;\n$pd-font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n$pd-border-radius: 3px !default;\n\n\n.pika-single {\n z-index: $pd-z-index;\n display: block;\n position: relative;\n color: $pd-text-color;\n background: $pd-picker-bg;\n border: 1px solid $pd-picker-border;\n border-bottom-color: $pd-picker-border-bottom;\n font-family: $pd-font-family;\n\n &.is-hidden {\n display: none;\n }\n\n &.is-bound {\n position: absolute;\n box-shadow: 0 5px 15px -5px $pd-picker-shadow;\n }\n}\n\n// clear child float (pika-lendar), using the famous micro clearfix hack\n// http://nicolasgallagher.com/micro-clearfix-hack/\n.pika-single {\n &:before,\n &:after {\n content: \" \";\n display: table;\n }\n\n &:after { clear: both }\n}\n\n.pika-lendar {\n float: left;\n width: 240px;\n margin: 8px;\n}\n\n.pika-title {\n position: relative;\n text-align: center;\n\n select {\n cursor: pointer;\n position: absolute;\n z-index: $pd-z-index - 1;\n margin: 0;\n left: 0;\n top: 5px;\n opacity: 0;\n }\n}\n\n.pika-label {\n display: inline-block;\n position: relative;\n z-index: $pd-z-index;\n overflow: hidden;\n margin: 0;\n padding: 5px 3px;\n font-size: 14px;\n line-height: 20px;\n font-weight: bold;\n color: $pd-title-color;\n background-color: $pd-title-bg;\n}\n\n.pika-prev,\n.pika-next {\n display: block;\n cursor: pointer;\n position: relative;\n outline: none;\n border: 0;\n padding: 0;\n width: 20px;\n height: 30px;\n text-indent: 20px; // hide text using text-indent trick, using width value (it's enough)\n white-space: nowrap;\n overflow: hidden;\n background-color: transparent;\n background-position: center center;\n background-repeat: no-repeat;\n background-size: 75% 75%;\n opacity: .5;\n\n &:hover {\n opacity: 1;\n }\n\n &.is-disabled {\n cursor: default;\n opacity: .2;\n }\n}\n\n.pika-prev,\n.is-rtl .pika-next {\n float: left;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==');\n}\n\n.pika-next,\n.is-rtl .pika-prev {\n float: right;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=');\n}\n\n.pika-select {\n display: inline-block;\n}\n\n.pika-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: 0;\n\n th,\n td {\n width: 14.285714285714286%;\n padding: 0;\n }\n\n th {\n color: $pd-th-color;\n font-size: 12px;\n line-height: 25px;\n font-weight: bold;\n text-align: center;\n }\n\n abbr {\n border-bottom: none;\n cursor: help;\n }\n}\n\n.pika-button {\n cursor: pointer;\n display: block;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n outline: none;\n border: 0;\n margin: 0;\n width: 100%;\n padding: 5px;\n color: $pd-day-color;\n font-size: 12px;\n line-height: 15px;\n text-align: right;\n background: $pd-day-bg;\n height: initial;\n\n .has-event & {\n color: $pd-event-color;\n background: $pd-event-bg;\n }\n\n .is-today & {\n color: $pd-day-today-color;\n font-weight: bold;\n }\n\n .is-selected & {\n color: $pd-day-selected-color;\n font-weight: bold;\n background: $pd-day-selected-bg;\n box-shadow: inset 0 1px 3px $pd-day-selected-shadow;\n border-radius: $pd-border-radius;\n }\n\n .is-disabled &,\n .is-outside-current-month & {\n color: $pd-day-disabled-color;\n opacity: .3;\n }\n\n .is-disabled & {\n pointer-events: none;\n cursor: default;\n }\n\n &:hover {\n color: $pd-day-hover-color;\n background: $pd-day-hover-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n }\n\n .is-selection-disabled {\n pointer-events: none;\n cursor: default;\n }\n}\n\n.pika-week {\n font-size: 11px;\n color: $pd-week-color;\n}\n\n.is-inrange .pika-button {\n color: $pd-inrange-color;\n background: $pd-inrange-bg;\n}\n\n.is-startrange .pika-button {\n color: $pd-startrange-color;\n background: $pd-startrange-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n}\n\n.is-endrange .pika-button {\n color: $pd-endrange-color;\n background: $pd-endrange-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n}\n","html\n background: $gallery-gray\n font-family: $helvetica-neue\n font-weight: normal\n min-height: 100vh\n\n body\n min-height: 100vh\n\n a\n text-decoration: none\n\n .torch-container\n margin: 0 auto\n padding-right: 15px\n padding-left: 15px\n","$helvetica-neue: \"Helvetica Neue\",Helvetica,Arial,sans-serif","%h3-text\n font-size: 16px\n font-weight: bold\n font-family: $helvetica-neue\n\n%h3-gray-text\n @extend %h3-text\n color: $dark-gray","$white: #FFFFFF\n$gallery-gray: #EEEEEE\n$alabaster-gray: #FAFAFA\n$dark-gray: #666666\n$ir-red: #e73536\n$green: #70ca63\n$orange: #f6bb42\n$warning-red: #e9573f\n$blue: #4a89dc\n","%base-button-styles\n transition: all 250ms ease-in-out\n font-family: $helvetica-neue\n font-size: 14px\n padding: 9px 12px\n cursor: pointer\n background-color: $gallery-gray\n color: $dark-gray\n border: 1px solid transparent\n text-transform: capitalize\n\n%default-button\n @extend %base-button-styles\n border-color: rgba(0, 0, 0, 0.1)\n\n &:hover\n background-color: darken($gallery-gray, 15%)\n\n%red-button\n @extend %base-button-styles\n background-color: $ir-red\n color: $white\n\n &:hover\n background-color: darken($ir-red, 15%)\n\n%add-button\n &:before\n content: \"+\"\n display: inline-block\n font-size: 20px\n line-height: 10px\n font-weight: bold\n margin-right: 3px\n\n\n\n\n","%select-input\n transition: all 350ms ease-in-out\n appearance: none\n outline: 0\n margin: 0\n display: block\n border: 1px solid darken($gallery-gray, 10%)\n border-radius: 0px\n padding: 9px 25px 9px 10px\n font-family: $helvetica-neue\n font-size: 14px\n background: url('../images/down-arrow.png') no-repeat 97% 50% $white\n background-size: 17px\n background-position: 94%\n color: $dark-gray\n\n &:focus,\n &:hover\n border-color: $dark-gray\n","%base-label\n color: $dark-gray\n padding: 10px 0\n font-size: 14px\n display: block\n","%text-input\n transition: all 350ms ease-in-out\n appearance: none\n outline: none\n background: none\n margin: 0\n padding: 10px\n font-family: $helvetica-neue\n font-size: 14px\n color: $dark-gray\n border: 1px solid darken($gallery-gray, 10%)\n display: block\n background-color: $white\n\n &:focus,\n &:hover\n border-color: $dark-gray\n border-width: 1px\n","section#torch-account-info\n background-color: $ir-red\n text-align: right\n\n a\n margin: 6px 0\n display: inline-block\n padding: 0 10px\n border-right: 1px solid $white\n color: $white\n font-family: $helvetica-neue\n font-size: 14px\n\n .torch-container\n a\n &:last-child\n border-right: 0px\n\n","section#torch-nav\n background-color: $alabaster-gray\n\n .torch-container\n display: flex\n\n .torch-logo\n padding: 6px 0px\n\n a\n display: flex\n\n h3\n color: $ir-red\n font-family: $helvetica-neue\n text-transform: uppercase\n font-size: 18px\n font-weight: bold\n margin: 15px 10px\n\n &:before\n content: \" \"\n display: block\n background-image: url(\"../images/torch-logo.png\")\n width: 50px\n height: 50px\n background-size: contain\n background-repeat: no-repeat\n\n .torch-nav\n display: flex\n\n a\n display: block\n font-size: 16px\n padding: 22px 10px 19px 10px\n border-bottom: 3px solid transparent\n color: lighten($dark-gray, 25%)\n\n &:hover\n color: $dark-gray\n\n &.active\n border-color: $ir_red\n color: $dark-gray\n","section#torch-table\n overflow-x: auto\n\n .torch-no-data\n text-transform: capitalize\n color: $dark-gray\n\n table\n color: $dark-gray\n font-size: 14px\n font-family: $helvetica-neue\n width: 100%\n background-color: $white\n\n th\n border-top: 1px solid $gallery-gray\n border-bottom: 1px solid $gallery-gray\n background-color: $alabaster-gray\n padding: 0\n color: $dark-gray\n vertical-align: middle\n\n &:hover\n background-color: darken($alabaster-gray, 15%)\n\n &:first-child\n border-left: 1px solid $gallery-gray\n\n &:last-child\n border-right: 1px solid $gallery-gray\n\n .caret\n border-left: 5px solid transparent\n border-right: 5px solid transparent\n display: inline-block\n height: 0\n margin-left: 5px\n margin-top: 5px\n position: absolute\n right: 10px\n top: 12px\n width: 0\n\n a,\n span:not(.caret)\n position: relative\n text-decoration: none\n color: $dark-gray\n padding: 12px 10px\n display: block\n\n a.active.desc\n .caret\n border-top: 5px solid $dark-gray\n\n a.active.asc\n .caret\n border-bottom: 5px solid $dark-gray\n\n td\n overflow: hidden\n text-overflow: ellipsis\n border-top: 1px solid $gallery-gray\n border-bottom: 1px solid $gallery-gray\n vertical-align: middle\n padding: 15px 10px\n max-width: 300px\n\n &:first-child\n border-left: 1px solid $gallery-gray\n\n &:last-child\n border-right: 1px solid $gallery-gray\n\n a\n color: $ir-red\n text-decoration: none\n\n img\n max-height: 30px\n max-width: 30px\n\n button\n @extend %red-button\n","section#torch-toolbar\n .torch-container\n display: flex\n justify-content: flex-end\n\n a\n @extend %default-button\n margin-right: 20px\n\n &:last-child\n margin-right: 0px","section#torch-filters\n background-color: $alabaster-gray\n padding: 20px\n\n h3\n @extend %h3-gray-text\n text-transform: capitalize\n\n hr\n appearance: none\n border: none\n border-bottom: 1px solid darken($gallery-gray, 10%)\n margin: 20px 0 10px\n\n .field\n display: flex\n flex-wrap: wrap\n\n label\n @extend %base-label\n flex: 1\n flex-basis: 100%\n\n select\n @extend %select-input\n flex: 1\n margin-right: 20px\n max-width: 30%\n\n input[type=\"number\"]\n @extend %text-input\n flex: 3\n\n input[type=\"text\"]\n @extend %text-input\n flex: 3\n\n &.datepicker\n width: calc(50% - 10px)\n\n &.start\n margin-right: 20px\n\n button\n @extend %default-button\n margin-top: 10px\n\n a\n margin-left: 20px\n color: $ir-red\n","section#torch-pagination\n ul\n display: flex\n\n li\n a\n display: block\n padding: 10px 15px\n color: $ir-red\n text-decoration: none\n background-color: $white\n border: 1px solid $gallery-gray\n margin-left: -1px\n\n &:hover\n background-color: $alabaster-gray\n\n &.active\n background-color: $ir-red\n color: $white\n\n &:first-child\n a\n margin-left: 0px\n\n\n\n","section#torch-header-and-content\n .header\n background-color: $alabaster-gray\n padding: 15px 20px\n border-top: 4px solid $ir-red\n border-radius: 3px\n border-bottom: 1px solid $gallery-gray\n\n h3\n @extend %h3-gray-text\n\n ul\n padding: 20px\n background-color: $white\n\n\n li\n display: flex\n padding: 10px 0\n\n .torch-show-label\n width: 20%\n text-align: center\n\n .torch-show-data\n width: 80%\n\n\n","form#torch-form\n background-color: $white\n display: flex\n padding: 20px\n\n .torch-form-error\n background-color: $orange\n color: $white\n margin-bottom: 20px\n padding: 5px\n text-align: center\n\n .torch-form-group\n align-items: center\n display: flex\n flex-wrap: wrap\n margin-bottom: 20px\n\n label\n display: flex\n align-items: center\n justify-content: flex-end\n font-size: 15px\n font-family: $helvetica-neue\n color: $dark-gray\n flex: 1\n text-align: right\n margin-right: 20px\n\n input[type=\"text\"],\n input[type=\"password\"],\n textarea\n @extend %text-input\n flex: 1\n\n input[type=\"number\"]\n @extend %text-input\n\n select\n @extend %select-input\n\n .help-block\n margin-left: calc(30% + 12px)\n width: 70%\n text-transform: capitalize\n color: $orange\n font-size: 14px\n\n .torch-form-group-input\n align-items: center\n display: flex\n flex: 3\n flex-wrap: wrap\n\n select:first-child\n margin-left: 0\n\n select\n margin-right: 0.5em\n margin-left: 0.5em\n\n\n .invalid-feedback\n flex: 1\n flex-basis: 100%\n\n .torch-submit-form\n display: flex\n justify-content: flex-end\n\n .torch-submit-button\n @extend %red-button\n",".torch-panel\n border: 2px solid $gallery-gray\n padding: 25px\n flex: 1\n\n legend\n @extend %h3-gray-text\n padding: 0 6px\n",".torch-datepicker\n .is-today\n &:not(.is-selected)\n .pika-button\n color: $ir-red\n\n .pika-button\n &:hover\n background: $ir-red\n color: $white !important\n\n .is-selected\n .pika-button\n background: $ir-red\n box-shadow: none\n\n &:hover\n background: $ir-red","section#torch-flash-messages\n margin-bottom: 20px\n\n .torch-flash\n padding: 8px\n text-align: center\n color: $white\n\n &.error\n background-color: $orange\n\n &.info\n background-color: $blue\n\n &.success\n background-color: $green\n\n .torch-flash-close\n appearance: none\n background-color: inherit\n border: 1px solid $white\n color: $white\n border-radius: 50%\n width: 22px\n height: 22px\n cursor: pointer\n\n &:focus\n outline: none","body.torch-index\n section#torch-nav\n margin-bottom: 20px\n\n section#torch-toolbar\n margin-bottom: 20px\n\n section#torch-index-content\n .torch-container\n display: flex\n\n section#torch-filters\n flex: 1\n margin-left: 35px\n order: 2\n\n section#torch-table\n flex: 3\n order: 1\n width: 70%\n\n table\n margin-bottom: 20px\n\n th\n text-align: left\n\n th:last-child\n text-align: right\n\n .torch-actions\n text-align: right\n\n section#torch-pagination\n display: flex\n justify-content: center\n margin-bottom: 20px\n","body.torch-show\n header\n margin-bottom: 20px\n\n section#torch-toolbar\n margin-bottom: 20px\n\n .torch-container header\n margin-bottom: 0\n\n .torch-show-details\n padding: 20px\n background-color: $white\n\n .torch-show-attribute\n display: flex\n padding: 0.5rem 0\n\n .torch-show-label\n border-right: 1px solid $dark-gray\n flex: 1\n margin-right: 1rem\n padding-right: 1rem\n text-align: right\n\n .torch-show-data\n flex: 4\n","body.torch-edit,\nbody.torch-update\n header\n margin-bottom: 20px\n\n section#torch-toolbar\n margin-bottom: 20px","body.torch-new,\nbody.torch-create\n header\n margin-bottom: 20px\n\n section#torch-toolbar\n margin-bottom: 20px"],"names":[],"version":3,"file":"theme.css.map"}
\ No newline at end of file
+{"mappings":"AEMA,2eAUA,4FAGA,mBAGA,sBAGA,yBAIE,4EASF,gDCIA,0LAUI,oCAIA,kFASA,iEAMA,8BAGJ,+CAMA,gDAII,mGAWJ,0LAcA,mSAmBI,4CAIA,wEAMJ,kRAMA,mRAMA,kCAIA,0EAMI,uDAMA,4FAQA,6CAMJ,iNAiBI,mDAKA,kDAKA,0HAQA,uFAMA,6DAKA,mFAOA,uEAMJ,qCAKA,uDAKA,4FAOA,uFChQA,4GAME,2BAGA,4BAGA,yEEZF,yLEAA,gXAWA,iFAIE,0FAGF,gIAKE,iICvBF,+aAgBE,oMChBF,0FCAA,4iBAcE,2rBCdF,qEAIE,0LAWI,wECfN,2CAGE,gDAGA,4CAGE,6CAGE,gLAQA,2MASJ,0CAGE,uIAOE,gDAGA,sEC1CN,oCAGE,wEAIA,2IAOE,wJAQE,4DAGA,oEAGA,oEAGA,wNAYA,+JASE,4EAIA,8EAGJ,mLASE,oEAGA,oEAGA,kEAIA,gEC7EJ,6EAIA,0CAIE,kDCTJ,4DAIE,mDAIA,kJAMA,yDAIE,6CAKA,2EAMA,uDAIA,qDAIE,gFAGE,iFAGN,6CAIA,uDC9CA,yCAIE,8JASE,6DAGA,yEAKA,wDCrBJ,gKAUA,uEAKE,mEAIE,qFAIA,kECxBN,gEAKE,uHAOA,oGAME,2NAWA,4JAYA,4IAOF,8FAME,yEAGA,kFAKA,oEAIF,yEClEF,uDAKE,kCCFI,yEAIF,6EAKA,+EAIE,qEChBN,gDAGE,mFAKE,yEAGA,wEAGA,2EAGA,4OAUE,6EC1BJ,6FAOE,2EAGE,oHAKA,2GAKE,2GAGE,2GAGA,8NAMJ,8IChCJ,gFAMA,wDAGA,uEAIA,mEAIE,iJAOA,8DCvBF","sources":["theme.css","css/theme.sass","css/shared/reset/_reset.scss","node_modules/pikaday/scss/pikaday.scss","css/theme/globals/_global.sass","css/shared/settings/_fonts.sass","css/theme/_extends/_typography.sass","css/shared/settings/_colors.sass","css/theme/_extends/_buttons.sass","css/theme/_extends/_select-input.sass","css/theme/_extends/_label.sass","css/theme/_extends/_text-input.sass","css/theme/components/_account-info.sass","css/theme/components/_nav.sass","css/theme/components/_table.sass","css/theme/components/_toolbar.sass","css/theme/components/_filters.sass","css/theme/components/_pagination.sass","css/theme/components/_header-and-content.sass","css/theme/components/_form.sass","css/theme/components/_panel.sass","css/theme/components/_datepicker.sass","css/theme/components/_flash-messages.sass","css/theme/pages/_index.sass","css/theme/pages/_show.sass","css/theme/pages/_edit.sass","css/theme/pages/_new.sass"],"sourcesContent":["html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n border: none;\n margin: 0;\n padding: 0;\n}\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block;\n}\n\nbody {\n line-height: 1;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after, q:before, q:after {\n content: \"\";\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n.pika-single {\n z-index: 9999;\n color: #333;\n background: #fff;\n border: 1px solid #ccc;\n border-bottom-color: #bbb;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n display: block;\n position: relative;\n}\n\n.pika-single.is-hidden {\n display: none;\n}\n\n.pika-single.is-bound {\n position: absolute;\n box-shadow: 0 5px 15px -5px rgba(0, 0, 0, .5);\n}\n\n.pika-single:before, .pika-single:after {\n content: \" \";\n display: table;\n}\n\n.pika-single:after {\n clear: both;\n}\n\n.pika-lendar {\n float: left;\n width: 240px;\n margin: 8px;\n}\n\n.pika-title {\n text-align: center;\n position: relative;\n}\n\n.pika-title select {\n cursor: pointer;\n z-index: 9998;\n opacity: 0;\n margin: 0;\n position: absolute;\n top: 5px;\n left: 0;\n}\n\n.pika-label {\n z-index: 9999;\n color: #333;\n background-color: #fff;\n margin: 0;\n padding: 5px 3px;\n font-size: 14px;\n font-weight: bold;\n line-height: 20px;\n display: inline-block;\n position: relative;\n overflow: hidden;\n}\n\n.pika-prev, .pika-next {\n cursor: pointer;\n width: 20px;\n height: 30px;\n text-indent: 20px;\n white-space: nowrap;\n opacity: .5;\n background-color: rgba(0, 0, 0, 0);\n background-position: center;\n background-repeat: no-repeat;\n background-size: 75% 75%;\n border: none;\n outline: none;\n padding: 0;\n display: block;\n position: relative;\n overflow: hidden;\n}\n\n.pika-prev:hover, .pika-next:hover {\n opacity: 1;\n}\n\n.pika-prev.is-disabled, .pika-next.is-disabled {\n cursor: default;\n opacity: .2;\n}\n\n.pika-prev, .is-rtl .pika-next {\n float: left;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==\");\n}\n\n.pika-next, .is-rtl .pika-prev {\n float: right;\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=\");\n}\n\n.pika-select {\n display: inline-block;\n}\n\n.pika-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: none;\n}\n\n.pika-table th, .pika-table td {\n width: 14.2857%;\n padding: 0;\n}\n\n.pika-table th {\n color: #999;\n text-align: center;\n font-size: 12px;\n font-weight: bold;\n line-height: 25px;\n}\n\n.pika-table abbr {\n cursor: help;\n border-bottom: none;\n}\n\n.pika-button {\n cursor: pointer;\n box-sizing: border-box;\n width: 100%;\n color: #666;\n text-align: right;\n height: initial;\n background: #f5f5f5;\n border: none;\n outline: none;\n margin: 0;\n padding: 5px;\n font-size: 12px;\n line-height: 15px;\n display: block;\n}\n\n.has-event .pika-button {\n color: #fff;\n background: #3af;\n}\n\n.is-today .pika-button {\n color: #3af;\n font-weight: bold;\n}\n\n.is-selected .pika-button {\n color: #fff;\n background: #3af;\n border-radius: 3px;\n font-weight: bold;\n box-shadow: inset 0 1px 3px #178fe5;\n}\n\n.is-disabled .pika-button, .is-outside-current-month .pika-button {\n color: #999;\n opacity: .3;\n}\n\n.is-disabled .pika-button {\n pointer-events: none;\n cursor: default;\n}\n\n.pika-button:hover {\n color: #fff;\n box-shadow: none;\n background: #ff8000;\n border-radius: 3px;\n}\n\n.pika-button .is-selection-disabled {\n pointer-events: none;\n cursor: default;\n}\n\n.pika-week {\n color: #999;\n font-size: 11px;\n}\n\n.is-inrange .pika-button {\n color: #666;\n background: #d5e9f7;\n}\n\n.is-startrange .pika-button {\n color: #fff;\n box-shadow: none;\n background: #6cb31d;\n border-radius: 3px;\n}\n\n.is-endrange .pika-button {\n color: #fff;\n box-shadow: none;\n background: #3af;\n border-radius: 3px;\n}\n\nhtml {\n min-height: 100vh;\n background: #eee;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-weight: normal;\n}\n\nhtml body {\n min-height: 100vh;\n}\n\nhtml a {\n text-decoration: none;\n}\n\nhtml .torch-container {\n margin: 0 auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n\n.torch-panel legend, section#torch-header-and-content .header h3, section#torch-filters h3 {\n color: #666;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 16px;\n font-weight: bold;\n}\n\nform#torch-form .torch-submit-form .torch-submit-button, section#torch-table table td button, section#torch-filters button, section#torch-toolbar a {\n cursor: pointer;\n color: #666;\n text-transform: capitalize;\n background-color: #eee;\n border: 1px solid rgba(0, 0, 0, 0);\n padding: 9px 12px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n transition: all .25s ease-in-out;\n}\n\nsection#torch-filters button, section#torch-toolbar a {\n border-color: rgba(0, 0, 0, .1);\n}\n\nsection#torch-filters button:hover, section#torch-toolbar a:hover {\n background-color: #c8c8c8;\n}\n\nform#torch-form .torch-submit-form .torch-submit-button, section#torch-table table td button {\n color: #fff;\n background-color: #e73536;\n}\n\nform#torch-form .torch-submit-form .torch-submit-button:hover, section#torch-table table td button:hover {\n background-color: #b91617;\n}\n\nform#torch-form .torch-form-group select, section#torch-filters .field select {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n color: #666;\n background: #fff url(\"down-arrow.e17911d3.png\") 94% / 17px no-repeat;\n border: 1px solid #d5d5d5;\n border-radius: 0;\n outline: none;\n margin: 0;\n padding: 9px 25px 9px 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n transition: all .35s ease-in-out;\n display: block;\n}\n\nform#torch-form .torch-form-group select:focus, section#torch-filters .field select:focus, form#torch-form .torch-form-group select:hover, section#torch-filters .field select:hover {\n border-color: #666;\n}\n\nsection#torch-filters .field label {\n color: #666;\n padding: 10px 0;\n font-size: 14px;\n display: block;\n}\n\nform#torch-form .torch-form-group input[type=\"number\"], form#torch-form .torch-form-group input[type=\"text\"], form#torch-form .torch-form-group input[type=\"password\"], form#torch-form .torch-form-group textarea, section#torch-filters .field input[type=\"text\"], section#torch-filters .field input[type=\"number\"] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n color: #666;\n background: #fff;\n border: 1px solid #d5d5d5;\n outline: none;\n margin: 0;\n padding: 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n transition: all .35s ease-in-out;\n display: block;\n}\n\nform#torch-form .torch-form-group input[type=\"number\"]:focus, form#torch-form .torch-form-group input[type=\"text\"]:focus, form#torch-form .torch-form-group input[type=\"password\"]:focus, form#torch-form .torch-form-group textarea:focus, section#torch-filters .field input[type=\"text\"]:focus, section#torch-filters .field input[type=\"number\"]:focus, form#torch-form .torch-form-group input[type=\"number\"]:hover, form#torch-form .torch-form-group input[type=\"text\"]:hover, form#torch-form .torch-form-group input[type=\"password\"]:hover, form#torch-form .torch-form-group textarea:hover, section#torch-filters .field input[type=\"text\"]:hover, section#torch-filters .field input[type=\"number\"]:hover {\n border-width: 1px;\n border-color: #666;\n}\n\nsection#torch-account-info {\n text-align: right;\n background-color: #e73536;\n}\n\nsection#torch-account-info a {\n color: #fff;\n border-right: 1px solid #fff;\n margin: 6px 0;\n padding: 0 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n display: inline-block;\n}\n\nsection#torch-account-info .torch-container a:last-child {\n border-right: none;\n}\n\nsection#torch-nav {\n background-color: #fafafa;\n}\n\nsection#torch-nav .torch-container {\n display: flex;\n}\n\nsection#torch-nav .torch-logo {\n padding: 6px 0;\n}\n\nsection#torch-nav .torch-logo a {\n display: flex;\n}\n\nsection#torch-nav .torch-logo a h3 {\n color: #e73536;\n text-transform: uppercase;\n margin: 15px 10px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 18px;\n font-weight: bold;\n}\n\nsection#torch-nav .torch-logo a:before {\n content: \" \";\n width: 50px;\n height: 50px;\n background-image: url(\"torch-logo.a963df87.png\");\n background-repeat: no-repeat;\n background-size: contain;\n display: block;\n}\n\nsection#torch-nav .torch-nav {\n display: flex;\n}\n\nsection#torch-nav .torch-nav a {\n color: #a6a6a6;\n border-bottom: 3px solid rgba(0, 0, 0, 0);\n padding: 22px 10px 19px;\n font-size: 16px;\n display: block;\n}\n\nsection#torch-nav .torch-nav a:hover {\n color: #666;\n}\n\nsection#torch-nav .torch-nav a.active {\n color: #666;\n border-color: #e73536;\n}\n\nsection#torch-table {\n overflow-x: auto;\n}\n\nsection#torch-table .torch-no-data {\n text-transform: capitalize;\n color: #666;\n}\n\nsection#torch-table table {\n color: #666;\n width: 100%;\n background-color: #fff;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 14px;\n}\n\nsection#torch-table table th {\n color: #666;\n vertical-align: middle;\n background-color: #fafafa;\n border-top: 1px solid #eee;\n border-bottom: 1px solid #eee;\n padding: 0;\n}\n\nsection#torch-table table th:hover {\n background-color: #d4d4d4;\n}\n\nsection#torch-table table th:first-child {\n border-left: 1px solid #eee;\n}\n\nsection#torch-table table th:last-child {\n border-right: 1px solid #eee;\n}\n\nsection#torch-table table th .caret {\n height: 0;\n width: 0;\n border-left: 5px solid rgba(0, 0, 0, 0);\n border-right: 5px solid rgba(0, 0, 0, 0);\n margin-top: 5px;\n margin-left: 5px;\n display: inline-block;\n position: absolute;\n top: 12px;\n right: 10px;\n}\n\nsection#torch-table table th a, section#torch-table table th span:not(.caret) {\n color: #666;\n padding: 12px 10px;\n text-decoration: none;\n display: block;\n position: relative;\n}\n\nsection#torch-table table th a.active.desc .caret {\n border-top: 5px solid #666;\n}\n\nsection#torch-table table th a.active.asc .caret {\n border-bottom: 5px solid #666;\n}\n\nsection#torch-table table td {\n text-overflow: ellipsis;\n vertical-align: middle;\n max-width: 300px;\n border-top: 1px solid #eee;\n border-bottom: 1px solid #eee;\n padding: 15px 10px;\n overflow: hidden;\n}\n\nsection#torch-table table td:first-child {\n border-left: 1px solid #eee;\n}\n\nsection#torch-table table td:last-child {\n border-right: 1px solid #eee;\n}\n\nsection#torch-table table td a {\n color: #e73536;\n text-decoration: none;\n}\n\nsection#torch-table table td img {\n max-height: 30px;\n max-width: 30px;\n}\n\nsection#torch-toolbar .torch-container {\n justify-content: flex-end;\n display: flex;\n}\n\nsection#torch-toolbar a {\n margin-right: 20px;\n}\n\nsection#torch-toolbar a:last-child {\n margin-right: 0;\n}\n\nsection#torch-filters {\n background-color: #fafafa;\n padding: 20px;\n}\n\nsection#torch-filters h3 {\n text-transform: capitalize;\n}\n\nsection#torch-filters hr {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: none;\n border-bottom: 1px solid #d5d5d5;\n margin: 20px 0 10px;\n}\n\nsection#torch-filters .field {\n flex-wrap: wrap;\n display: flex;\n}\n\nsection#torch-filters .field label {\n flex: 100%;\n}\n\nsection#torch-filters .field select {\n max-width: 30%;\n flex: 1;\n margin-right: 20px;\n}\n\nsection#torch-filters .field input[type=\"number\"] {\n flex: 3;\n}\n\nsection#torch-filters .field input[type=\"text\"] {\n flex: 3;\n}\n\nsection#torch-filters .field input[type=\"text\"].datepicker {\n width: calc(50% - 10px);\n}\n\nsection#torch-filters .field input[type=\"text\"].datepicker.start {\n margin-right: 20px;\n}\n\nsection#torch-filters button {\n margin-top: 10px;\n}\n\nsection#torch-filters a {\n color: #e73536;\n margin-left: 20px;\n}\n\nsection#torch-pagination ul {\n display: flex;\n}\n\nsection#torch-pagination li a {\n color: #e73536;\n background-color: #fff;\n border: 1px solid #eee;\n margin-left: -1px;\n padding: 10px 15px;\n text-decoration: none;\n display: block;\n}\n\nsection#torch-pagination li a:hover {\n background-color: #fafafa;\n}\n\nsection#torch-pagination li a.active {\n color: #fff;\n background-color: #e73536;\n}\n\nsection#torch-pagination li:first-child a {\n margin-left: 0;\n}\n\nsection#torch-header-and-content .header {\n background-color: #fafafa;\n border-top: 4px solid #e73536;\n border-bottom: 1px solid #eee;\n border-radius: 3px;\n padding: 15px 20px;\n}\n\nsection#torch-header-and-content ul {\n background-color: #fff;\n padding: 20px;\n}\n\nsection#torch-header-and-content ul li {\n padding: 10px 0;\n display: flex;\n}\n\nsection#torch-header-and-content ul li .torch-show-label {\n width: 20%;\n text-align: center;\n}\n\nsection#torch-header-and-content ul li .torch-show-data {\n width: 80%;\n}\n\nform#torch-form {\n background-color: #fff;\n padding: 20px;\n display: flex;\n}\n\nform#torch-form .torch-form-error {\n color: #fff;\n text-align: center;\n background-color: #f6bb42;\n margin-bottom: 20px;\n padding: 5px;\n}\n\nform#torch-form .torch-form-group {\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: 20px;\n display: flex;\n}\n\nform#torch-form .torch-form-group label {\n color: #666;\n text-align: right;\n flex: 1;\n justify-content: flex-end;\n align-items: center;\n margin-right: 20px;\n font-family: Helvetica Neue, Helvetica, Arial, sans-serif;\n font-size: 15px;\n display: flex;\n}\n\nform#torch-form .torch-form-group input[type=\"text\"], form#torch-form .torch-form-group input[type=\"password\"], form#torch-form .torch-form-group textarea {\n flex: 1;\n}\n\nform#torch-form .torch-form-group .help-block {\n width: 70%;\n text-transform: capitalize;\n color: #f6bb42;\n margin-left: calc(30% + 12px);\n font-size: 14px;\n}\n\nform#torch-form .torch-form-group-input {\n flex-wrap: wrap;\n flex: 3;\n align-items: center;\n display: flex;\n}\n\nform#torch-form .torch-form-group-input select:first-child {\n margin-left: 0;\n}\n\nform#torch-form .torch-form-group-input select {\n margin-left: .5em;\n margin-right: .5em;\n}\n\nform#torch-form .torch-form-group-input .invalid-feedback {\n flex: 100%;\n}\n\nform#torch-form .torch-submit-form {\n justify-content: flex-end;\n display: flex;\n}\n\n.torch-panel {\n border: 2px solid #eee;\n flex: 1;\n padding: 25px;\n}\n\n.torch-panel legend {\n padding: 0 6px;\n}\n\n.torch-datepicker .is-today:not(.is-selected) .pika-button {\n color: #e73536;\n}\n\n.torch-datepicker .pika-button:hover {\n background: #e73536;\n color: #fff !important;\n}\n\n.torch-datepicker .is-selected .pika-button {\n box-shadow: none;\n background: #e73536;\n}\n\n.torch-datepicker .is-selected .pika-button:hover {\n background: #e73536;\n}\n\nsection#torch-flash-messages {\n margin-bottom: 20px;\n}\n\nsection#torch-flash-messages .torch-flash {\n text-align: center;\n color: #fff;\n padding: 8px;\n}\n\nsection#torch-flash-messages .torch-flash.error {\n background-color: #f6bb42;\n}\n\nsection#torch-flash-messages .torch-flash.info {\n background-color: #4a89dc;\n}\n\nsection#torch-flash-messages .torch-flash.success {\n background-color: #70ca63;\n}\n\nsection#torch-flash-messages .torch-flash .torch-flash-close {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background-color: inherit;\n color: #fff;\n width: 22px;\n height: 22px;\n cursor: pointer;\n border: 1px solid #fff;\n border-radius: 50%;\n}\n\nsection#torch-flash-messages .torch-flash .torch-flash-close:focus {\n outline: none;\n}\n\nbody.torch-index section#torch-nav, body.torch-index section#torch-toolbar {\n margin-bottom: 20px;\n}\n\nbody.torch-index section#torch-index-content .torch-container {\n display: flex;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-filters {\n flex: 1;\n order: 2;\n margin-left: 35px;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-table {\n width: 70%;\n flex: 3;\n order: 1;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-table table {\n margin-bottom: 20px;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-table table th {\n text-align: left;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-table table th:last-child, body.torch-index section#torch-index-content .torch-container section#torch-table table .torch-actions {\n text-align: right;\n}\n\nbody.torch-index section#torch-index-content .torch-container section#torch-pagination {\n justify-content: center;\n margin-bottom: 20px;\n display: flex;\n}\n\nbody.torch-show header, body.torch-show section#torch-toolbar {\n margin-bottom: 20px;\n}\n\nbody.torch-show .torch-container header {\n margin-bottom: 0;\n}\n\nbody.torch-show .torch-show-details {\n background-color: #fff;\n padding: 20px;\n}\n\nbody.torch-show .torch-show-attribute {\n padding: .5rem 0;\n display: flex;\n}\n\nbody.torch-show .torch-show-attribute .torch-show-label {\n text-align: right;\n border-right: 1px solid #666;\n flex: 1;\n margin-right: 1rem;\n padding-right: 1rem;\n}\n\nbody.torch-show .torch-show-attribute .torch-show-data {\n flex: 4;\n}\n\nbody.torch-edit header, body.torch-update header, body.torch-edit section#torch-toolbar, body.torch-update section#torch-toolbar, body.torch-new header, body.torch-create header, body.torch-new section#torch-toolbar, body.torch-create section#torch-toolbar {\n margin-bottom: 20px;\n}\n\n/*# sourceMappingURL=theme.css.map */\n","// setup & base\n@import 'shared/bourbon/bourbon'\n@import 'shared/reset/reset'\n@import 'theme/settings/grid'\n@import 'shared/flex-grid/flex-grid'\n@import \"~pikaday/scss/pikaday.scss\"\n\n// global styles\n@import 'shared/settings/colors'\n@import 'shared/settings/fonts'\n@import 'theme/globals/global'\n\n// component styles\n@import 'theme/_extends/typography'\n@import 'theme/_extends/buttons'\n@import 'theme/_extends/select-input'\n@import 'theme/_extends/label'\n@import 'theme/_extends/text-input'\n\n@import 'theme/components/account-info'\n@import 'theme/components/nav'\n@import 'theme/components/table'\n@import 'theme/components/toolbar'\n@import 'theme/components/filters'\n@import 'theme/components/pagination'\n@import 'theme/components/header-and-content'\n@import 'theme/components/form'\n@import 'theme/components/panel'\n@import 'theme/components/datepicker'\n@import 'theme/components/flash-messages'\n\n// page styles\n@import 'theme/pages/index'\n@import 'theme/pages/show'\n@import 'theme/pages/edit'\n@import 'theme/pages/new'\n","/* BORROWED FROM: https://gist.github.com/hcatlin/1027867\n http://meyerweb.com/eric/tools/css/reset/\n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline; }\n\n/* HTML5 display-role reset for older browsers */\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block; }\n\nbody {\n line-height: 1; }\n\nol, ul {\n list-style: none; }\n\nblockquote, q {\n quotes: none; }\n\nblockquote {\n &:before, &:after {\n content: '';\n content: none; } }\n\nq {\n &:before, &:after {\n content: '';\n content: none; } }\n\ntable {\n border-collapse: collapse;\n border-spacing: 0; }","/*!\n * Pikaday\n * Copyright © 2014 David Bushell | BSD & MIT license | https://dbushell.com/\n */\n\n// Variables\n// Declare any of these variables before importing this SCSS file to easily override defaults\n// Variables are namespaced with the pd (pikaday) prefix\n\n// Colours\n$pd-text-color: #333 !default;\n$pd-title-color: #333 !default;\n$pd-title-bg: #fff !default;\n$pd-picker-bg: #fff !default;\n$pd-picker-border: #ccc !default;\n$pd-picker-border-bottom: #bbb !default;\n$pd-picker-shadow: rgba(0,0,0,.5) !default;\n$pd-th-color: #999 !default;\n$pd-day-color: #666 !default;\n$pd-day-bg: #f5f5f5 !default;\n$pd-day-hover-color: #fff !default;\n$pd-day-hover-bg: #ff8000 !default;\n$pd-day-today-color: #33aaff !default;\n$pd-day-selected-color: #fff !default;\n$pd-day-selected-bg: #33aaff !default;\n$pd-day-selected-shadow: #178fe5 !default;\n$pd-day-disabled-color: #999 !default;\n$pd-week-color: #999 !default;\n$pd-inrange-color: #666 !default;\n$pd-inrange-bg: #D5E9F7 !default;\n$pd-startrange-color: #fff !default;\n$pd-startrange-bg: #6CB31D !default;\n$pd-endrange-color: #fff !default;\n$pd-endrange-bg: #33aaff !default;\n$pd-event-color: #fff !default;\n$pd-event-bg: #33aaff !default;\n\n$pd-z-index: 9999 !default;\n$pd-font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif !default;\n$pd-border-radius: 3px !default;\n\n\n.pika-single {\n z-index: $pd-z-index;\n display: block;\n position: relative;\n color: $pd-text-color;\n background: $pd-picker-bg;\n border: 1px solid $pd-picker-border;\n border-bottom-color: $pd-picker-border-bottom;\n font-family: $pd-font-family;\n\n &.is-hidden {\n display: none;\n }\n\n &.is-bound {\n position: absolute;\n box-shadow: 0 5px 15px -5px $pd-picker-shadow;\n }\n}\n\n// clear child float (pika-lendar), using the famous micro clearfix hack\n// http://nicolasgallagher.com/micro-clearfix-hack/\n.pika-single {\n &:before,\n &:after {\n content: \" \";\n display: table;\n }\n\n &:after { clear: both }\n}\n\n.pika-lendar {\n float: left;\n width: 240px;\n margin: 8px;\n}\n\n.pika-title {\n position: relative;\n text-align: center;\n\n select {\n cursor: pointer;\n position: absolute;\n z-index: $pd-z-index - 1;\n margin: 0;\n left: 0;\n top: 5px;\n opacity: 0;\n }\n}\n\n.pika-label {\n display: inline-block;\n position: relative;\n z-index: $pd-z-index;\n overflow: hidden;\n margin: 0;\n padding: 5px 3px;\n font-size: 14px;\n line-height: 20px;\n font-weight: bold;\n color: $pd-title-color;\n background-color: $pd-title-bg;\n}\n\n.pika-prev,\n.pika-next {\n display: block;\n cursor: pointer;\n position: relative;\n outline: none;\n border: 0;\n padding: 0;\n width: 20px;\n height: 30px;\n text-indent: 20px; // hide text using text-indent trick, using width value (it's enough)\n white-space: nowrap;\n overflow: hidden;\n background-color: transparent;\n background-position: center center;\n background-repeat: no-repeat;\n background-size: 75% 75%;\n opacity: .5;\n\n &:hover {\n opacity: 1;\n }\n\n &.is-disabled {\n cursor: default;\n opacity: .2;\n }\n}\n\n.pika-prev,\n.is-rtl .pika-next {\n float: left;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==');\n}\n\n.pika-next,\n.is-rtl .pika-prev {\n float: right;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=');\n}\n\n.pika-select {\n display: inline-block;\n}\n\n.pika-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n border: 0;\n\n th,\n td {\n width: 14.285714285714286%;\n padding: 0;\n }\n\n th {\n color: $pd-th-color;\n font-size: 12px;\n line-height: 25px;\n font-weight: bold;\n text-align: center;\n }\n\n abbr {\n border-bottom: none;\n cursor: help;\n }\n}\n\n.pika-button {\n cursor: pointer;\n display: block;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n outline: none;\n border: 0;\n margin: 0;\n width: 100%;\n padding: 5px;\n color: $pd-day-color;\n font-size: 12px;\n line-height: 15px;\n text-align: right;\n background: $pd-day-bg;\n height: initial;\n\n .has-event & {\n color: $pd-event-color;\n background: $pd-event-bg;\n }\n\n .is-today & {\n color: $pd-day-today-color;\n font-weight: bold;\n }\n\n .is-selected & {\n color: $pd-day-selected-color;\n font-weight: bold;\n background: $pd-day-selected-bg;\n box-shadow: inset 0 1px 3px $pd-day-selected-shadow;\n border-radius: $pd-border-radius;\n }\n\n .is-disabled &,\n .is-outside-current-month & {\n color: $pd-day-disabled-color;\n opacity: .3;\n }\n\n .is-disabled & {\n pointer-events: none;\n cursor: default;\n }\n\n &:hover {\n color: $pd-day-hover-color;\n background: $pd-day-hover-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n }\n\n .is-selection-disabled {\n pointer-events: none;\n cursor: default;\n }\n}\n\n.pika-week {\n font-size: 11px;\n color: $pd-week-color;\n}\n\n.is-inrange .pika-button {\n color: $pd-inrange-color;\n background: $pd-inrange-bg;\n}\n\n.is-startrange .pika-button {\n color: $pd-startrange-color;\n background: $pd-startrange-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n}\n\n.is-endrange .pika-button {\n color: $pd-endrange-color;\n background: $pd-endrange-bg;\n box-shadow: none;\n border-radius: $pd-border-radius;\n}\n","html\n background: $gallery-gray\n font-family: $helvetica-neue\n font-weight: normal\n min-height: 100vh\n\n body\n min-height: 100vh\n\n a\n text-decoration: none\n\n .torch-container\n margin: 0 auto\n padding-right: 15px\n padding-left: 15px\n","$helvetica-neue: \"Helvetica Neue\",Helvetica,Arial,sans-serif","%h3-text\n font-size: 16px\n font-weight: bold\n font-family: $helvetica-neue\n\n%h3-gray-text\n @extend %h3-text\n color: $dark-gray","$white: #FFFFFF\n$gallery-gray: #EEEEEE\n$alabaster-gray: #FAFAFA\n$dark-gray: #666666\n$ir-red: #e73536\n$green: #70ca63\n$orange: #f6bb42\n$warning-red: #e9573f\n$blue: #4a89dc\n","%base-button-styles\n transition: all 250ms ease-in-out\n font-family: $helvetica-neue\n font-size: 14px\n padding: 9px 12px\n cursor: pointer\n background-color: $gallery-gray\n color: $dark-gray\n border: 1px solid transparent\n text-transform: capitalize\n\n%default-button\n @extend %base-button-styles\n border-color: rgba(0, 0, 0, 0.1)\n\n &:hover\n background-color: darken($gallery-gray, 15%)\n\n%red-button\n @extend %base-button-styles\n background-color: $ir-red\n color: $white\n\n &:hover\n background-color: darken($ir-red, 15%)\n\n%add-button\n &:before\n content: \"+\"\n display: inline-block\n font-size: 20px\n line-height: 10px\n font-weight: bold\n margin-right: 3px\n\n\n\n\n","%select-input\n transition: all 350ms ease-in-out\n appearance: none\n outline: 0\n margin: 0\n display: block\n border: 1px solid darken($gallery-gray, 10%)\n border-radius: 0px\n padding: 9px 25px 9px 10px\n font-family: $helvetica-neue\n font-size: 14px\n background: url('../images/down-arrow.png') no-repeat 97% 50% $white\n background-size: 17px\n background-position: 94%\n color: $dark-gray\n\n &:focus,\n &:hover\n border-color: $dark-gray\n","%base-label\n color: $dark-gray\n padding: 10px 0\n font-size: 14px\n display: block\n","%text-input\n transition: all 350ms ease-in-out\n appearance: none\n outline: none\n background: none\n margin: 0\n padding: 10px\n font-family: $helvetica-neue\n font-size: 14px\n color: $dark-gray\n border: 1px solid darken($gallery-gray, 10%)\n display: block\n background-color: $white\n\n &:focus,\n &:hover\n border-color: $dark-gray\n border-width: 1px\n","section#torch-account-info\n background-color: $ir-red\n text-align: right\n\n a\n margin: 6px 0\n display: inline-block\n padding: 0 10px\n border-right: 1px solid $white\n color: $white\n font-family: $helvetica-neue\n font-size: 14px\n\n .torch-container\n a\n &:last-child\n border-right: 0px\n\n","section#torch-nav\n background-color: $alabaster-gray\n\n .torch-container\n display: flex\n\n .torch-logo\n padding: 6px 0px\n\n a\n display: flex\n\n h3\n color: $ir-red\n font-family: $helvetica-neue\n text-transform: uppercase\n font-size: 18px\n font-weight: bold\n margin: 15px 10px\n\n &:before\n content: \" \"\n display: block\n background-image: url(\"../images/torch-logo.png\")\n width: 50px\n height: 50px\n background-size: contain\n background-repeat: no-repeat\n\n .torch-nav\n display: flex\n\n a\n display: block\n font-size: 16px\n padding: 22px 10px 19px 10px\n border-bottom: 3px solid transparent\n color: lighten($dark-gray, 25%)\n\n &:hover\n color: $dark-gray\n\n &.active\n border-color: $ir_red\n color: $dark-gray\n","section#torch-table\n overflow-x: auto\n\n .torch-no-data\n text-transform: capitalize\n color: $dark-gray\n\n table\n color: $dark-gray\n font-size: 14px\n font-family: $helvetica-neue\n width: 100%\n background-color: $white\n\n th\n border-top: 1px solid $gallery-gray\n border-bottom: 1px solid $gallery-gray\n background-color: $alabaster-gray\n padding: 0\n color: $dark-gray\n vertical-align: middle\n\n &:hover\n background-color: darken($alabaster-gray, 15%)\n\n &:first-child\n border-left: 1px solid $gallery-gray\n\n &:last-child\n border-right: 1px solid $gallery-gray\n\n .caret\n border-left: 5px solid transparent\n border-right: 5px solid transparent\n display: inline-block\n height: 0\n margin-left: 5px\n margin-top: 5px\n position: absolute\n right: 10px\n top: 12px\n width: 0\n\n a,\n span:not(.caret)\n position: relative\n text-decoration: none\n color: $dark-gray\n padding: 12px 10px\n display: block\n\n a.active.desc\n .caret\n border-top: 5px solid $dark-gray\n\n a.active.asc\n .caret\n border-bottom: 5px solid $dark-gray\n\n td\n overflow: hidden\n text-overflow: ellipsis\n border-top: 1px solid $gallery-gray\n border-bottom: 1px solid $gallery-gray\n vertical-align: middle\n padding: 15px 10px\n max-width: 300px\n\n &:first-child\n border-left: 1px solid $gallery-gray\n\n &:last-child\n border-right: 1px solid $gallery-gray\n\n a\n color: $ir-red\n text-decoration: none\n\n img\n max-height: 30px\n max-width: 30px\n\n button\n @extend %red-button\n","section#torch-toolbar\n .torch-container\n display: flex\n justify-content: flex-end\n\n a\n @extend %default-button\n margin-right: 20px\n\n &:last-child\n margin-right: 0px","section#torch-filters\n background-color: $alabaster-gray\n padding: 20px\n\n h3\n @extend %h3-gray-text\n text-transform: capitalize\n\n hr\n appearance: none\n border: none\n border-bottom: 1px solid darken($gallery-gray, 10%)\n margin: 20px 0 10px\n\n .field\n display: flex\n flex-wrap: wrap\n\n label\n @extend %base-label\n flex: 1\n flex-basis: 100%\n\n select\n @extend %select-input\n flex: 1\n margin-right: 20px\n max-width: 30%\n\n input[type=\"number\"]\n @extend %text-input\n flex: 3\n\n input[type=\"text\"]\n @extend %text-input\n flex: 3\n\n &.datepicker\n width: calc(50% - 10px)\n\n &.start\n margin-right: 20px\n\n button\n @extend %default-button\n margin-top: 10px\n\n a\n margin-left: 20px\n color: $ir-red\n","section#torch-pagination\n ul\n display: flex\n\n li\n a\n display: block\n padding: 10px 15px\n color: $ir-red\n text-decoration: none\n background-color: $white\n border: 1px solid $gallery-gray\n margin-left: -1px\n\n &:hover\n background-color: $alabaster-gray\n\n &.active\n background-color: $ir-red\n color: $white\n\n &:first-child\n a\n margin-left: 0px\n\n\n\n","section#torch-header-and-content\n .header\n background-color: $alabaster-gray\n padding: 15px 20px\n border-top: 4px solid $ir-red\n border-radius: 3px\n border-bottom: 1px solid $gallery-gray\n\n h3\n @extend %h3-gray-text\n\n ul\n padding: 20px\n background-color: $white\n\n\n li\n display: flex\n padding: 10px 0\n\n .torch-show-label\n width: 20%\n text-align: center\n\n .torch-show-data\n width: 80%\n\n\n","form#torch-form\n background-color: $white\n display: flex\n padding: 20px\n\n .torch-form-error\n background-color: $orange\n color: $white\n margin-bottom: 20px\n padding: 5px\n text-align: center\n\n .torch-form-group\n align-items: center\n display: flex\n flex-wrap: wrap\n margin-bottom: 20px\n\n label\n display: flex\n align-items: center\n justify-content: flex-end\n font-size: 15px\n font-family: $helvetica-neue\n color: $dark-gray\n flex: 1\n text-align: right\n margin-right: 20px\n\n input[type=\"text\"],\n input[type=\"password\"],\n textarea\n @extend %text-input\n flex: 1\n\n input[type=\"number\"]\n @extend %text-input\n\n select\n @extend %select-input\n\n .help-block\n margin-left: calc(30% + 12px)\n width: 70%\n text-transform: capitalize\n color: $orange\n font-size: 14px\n\n .torch-form-group-input\n align-items: center\n display: flex\n flex: 3\n flex-wrap: wrap\n\n select:first-child\n margin-left: 0\n\n select\n margin-right: 0.5em\n margin-left: 0.5em\n\n\n .invalid-feedback\n flex: 1\n flex-basis: 100%\n\n .torch-submit-form\n display: flex\n justify-content: flex-end\n\n .torch-submit-button\n @extend %red-button\n",".torch-panel\n border: 2px solid $gallery-gray\n padding: 25px\n flex: 1\n\n legend\n @extend %h3-gray-text\n padding: 0 6px\n",".torch-datepicker\n .is-today\n &:not(.is-selected)\n .pika-button\n color: $ir-red\n\n .pika-button\n &:hover\n background: $ir-red\n color: $white !important\n\n .is-selected\n .pika-button\n background: $ir-red\n box-shadow: none\n\n &:hover\n background: $ir-red","section#torch-flash-messages\n margin-bottom: 20px\n\n .torch-flash\n padding: 8px\n text-align: center\n color: $white\n\n &.error\n background-color: $orange\n\n &.info\n background-color: $blue\n\n &.success\n background-color: $green\n\n .torch-flash-close\n appearance: none\n background-color: inherit\n border: 1px solid $white\n color: $white\n border-radius: 50%\n width: 22px\n height: 22px\n cursor: pointer\n\n &:focus\n outline: none","body.torch-index\n section#torch-nav\n margin-bottom: 20px\n\n section#torch-toolbar\n margin-bottom: 20px\n\n section#torch-index-content\n .torch-container\n display: flex\n\n section#torch-filters\n flex: 1\n margin-left: 35px\n order: 2\n\n section#torch-table\n flex: 3\n order: 1\n width: 70%\n\n table\n margin-bottom: 20px\n\n th\n text-align: left\n\n th:last-child\n text-align: right\n\n .torch-actions\n text-align: right\n\n section#torch-pagination\n display: flex\n justify-content: center\n margin-bottom: 20px\n","body.torch-show\n header\n margin-bottom: 20px\n\n section#torch-toolbar\n margin-bottom: 20px\n\n .torch-container header\n margin-bottom: 0\n\n .torch-show-details\n padding: 20px\n background-color: $white\n\n .torch-show-attribute\n display: flex\n padding: 0.5rem 0\n\n .torch-show-label\n border-right: 1px solid $dark-gray\n flex: 1\n margin-right: 1rem\n padding-right: 1rem\n text-align: right\n\n .torch-show-data\n flex: 4\n","body.torch-edit,\nbody.torch-update\n header\n margin-bottom: 20px\n\n section#torch-toolbar\n margin-bottom: 20px","body.torch-new,\nbody.torch-create\n header\n margin-bottom: 20px\n\n section#torch-toolbar\n margin-bottom: 20px"],"names":[],"version":3,"file":"theme.css.map"}
\ No newline at end of file
diff --git a/priv/static/torch.js b/priv/static/torch.js
index ee60e2c5..ed49e161 100644
--- a/priv/static/torch.js
+++ b/priv/static/torch.js
@@ -3,5 +3,5 @@
* Pikaday
*
* Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday
- */!function(e,n){var a;try{a=$d2b378008f565d8d$import$a2cb963221bbaab7}catch(e){}t=function(e){"use strict";var t="function"==typeof e,n=!!window.addEventListener,a=window.document,i=window.setTimeout,o=function(e,t,a,i){n?e.addEventListener(t,a,!!i):e.attachEvent("on"+t,a)},s=function(e,t,a,i){n?e.removeEventListener(t,a,!!i):e.detachEvent("on"+t,a)},r=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},l=function(e,t){return-1!==(" "+e.className+" ").indexOf(" "+t+" ")},d=function(e,t){l(e,t)||(e.className=""===e.className?t:e.className+" "+t)},h=function(e,t){e.className=r((" "+e.className+" ").replace(" "+t+" "," "))},u=function(e){return/Array/.test(Object.prototype.toString.call(e))},c=function(e){return/Date/.test(Object.prototype.toString.call(e))&&!isNaN(e.getTime())},f=function(e){var t=e.getDay();return 0===t||6===t},g=function(e){return e%4==0&&e%100!=0||e%400==0},m=function(e,t){return[31,g(e)?29:28,31,30,31,30,31,31,30,31,30,31][t]},p=function(e){c(e)&&e.setHours(0,0,0,0)},y=function(e,t){return e.getTime()===t.getTime()},b=function(e,t,n){var a,i;for(a in t)(i=void 0!==e[a])&&"object"==typeof t[a]&&null!==t[a]&&void 0===t[a].nodeName?c(t[a])?n&&(e[a]=new Date(t[a].getTime())):u(t[a])?n&&(e[a]=t[a].slice(0)):e[a]=b({},t[a],n):!n&&i||(e[a]=t[a]);return e},v=function(e,t,n){var i;a.createEvent?((i=a.createEvent("HTMLEvents")).initEvent(t,!0,!1),i=b(i,n),e.dispatchEvent(i)):a.createEventObject&&(i=a.createEventObject(),i=b(i,n),e.fireEvent("on"+t,i))},D=function(e){return e.month<0&&(e.year-=Math.ceil(Math.abs(e.month)/12),e.month+=12),e.month>11&&(e.year+=Math.floor(Math.abs(e.month)/12),e.month-=12),e},_={field:null,bound:void 0,ariaLabel:"Use the arrow keys to pick a date",position:"bottom left",reposition:!0,format:"YYYY-MM-DD",toString:null,parse:null,defaultDate:null,setDefaultDate:!1,firstDay:0,firstWeekOfYearMinDays:4,formatStrict:!1,minDate:null,maxDate:null,yearRange:10,showWeekNumber:!1,pickWholeWeek:!1,minYear:0,maxYear:9999,minMonth:void 0,maxMonth:void 0,startRange:null,endRange:null,isRTL:!1,yearSuffix:"",showMonthAfterYear:!1,showDaysInNextAndPreviousMonths:!1,enableSelectionDaysInNextAndPreviousMonths:!1,numberOfMonths:1,mainCalendar:"left",container:void 0,blurFieldOnSelect:!0,i18n:{previousMonth:"Previous Month",nextMonth:"Next Month",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},theme:null,events:[],onSelect:null,onOpen:null,onClose:null,onDraw:null,keyboardInput:!0},w=function(e,t,n){for(t+=e.firstDay;t>=7;)t-=7;return n?e.i18n.weekdaysShort[t]:e.i18n.weekdays[t]},k=function(e){var t=[],n="false";if(e.isEmpty){if(!e.showDaysInNextAndPreviousMonths)return'
';t.push("is-outside-current-month"),e.enableSelectionDaysInNextAndPreviousMonths||t.push("is-selection-disabled")}return e.isDisabled&&t.push("is-disabled"),e.isToday&&t.push("is-today"),e.isSelected&&(t.push("is-selected"),n="true"),e.hasEvent&&t.push("has-event"),e.isInRange&&t.push("is-inrange"),e.isStartRange&&t.push("is-startrange"),e.isEndRange&&t.push("is-endrange"),''+e.day+" "},M=function(e,t){e.setHours(0,0,0,0);var n=e.getDate(),a=e.getDay(),i=t,o=i-1,s=7,r=function(e){return(e+s-1)%s};e.setDate(n+o-r(a));var l=new Date(e.getFullYear(),0,i),d=864e5,h=(e.getTime()-l.getTime())/d;return 1+Math.round((h-o+r(l.getDay()))/s)},x=function(n,a,i,o){var s=new Date(i,a,n);return''+(t?e(s).isoWeek():M(s,o))+" "},R=function(e,t,n,a){return''+(t?e.reverse():e).join("")+" "},S=function(e){return""+e.join("")+" "},E=function(e){var t,n=[];for(e.showWeekNumber&&n.push(" "),t=0;t<7;t++)n.push(''+w(e,t,!0)+" ");return""+(e.isRTL?n.reverse():n).join("")+" "},N=function(e,t,n,a,i,o){var s,r,l,d,h,c=e._o,f=n===c.minYear,g=n===c.maxYear,m='',p=!0,y=!0;for(l=[],s=0;s<12;s++)l.push('
c.maxMonth?' disabled="disabled"':"")+">"+c.i18n.months[s]+" ");for(d='
'+c.i18n.months[a]+''+l.join("")+"
",u(c.yearRange)?(s=c.yearRange[0],r=c.yearRange[1]+1):(s=n-c.yearRange,r=1+n+c.yearRange),l=[];s
=c.minYear&&l.push('"+s+" ");return h=''+n+c.yearSuffix+''+l.join("")+"
",c.showMonthAfterYear?m+=h+d:m+=d+h,f&&(0===a||c.minMonth>=a)&&(p=!1),g&&(11===a||c.maxMonth<=a)&&(y=!1),0===t&&(m+=''+c.i18n.previousMonth+" "),t===e._o.numberOfMonths-1&&(m+=''+c.i18n.nextMonth+" "),m+" "},C=function(e,t,n){return'"},A=function(s){var r=this,d=r.config(s);r._onMouseDown=function(e){if(r._v){var t=(e=e||window.event).target||e.srcElement;if(t)if(l(t,"is-disabled")||(!l(t,"pika-button")||l(t,"is-empty")||l(t.parentNode,"is-disabled")?l(t,"pika-prev")?r.prevMonth():l(t,"pika-next")&&r.nextMonth():(r.setDate(new Date(t.getAttribute("data-pika-year"),t.getAttribute("data-pika-month"),t.getAttribute("data-pika-day"))),d.bound&&i((function(){r.hide(),d.blurFieldOnSelect&&d.field&&d.field.blur()}),100))),l(t,"pika-select"))r._c=!0;else{if(!e.preventDefault)return e.returnValue=!1,!1;e.preventDefault()}}},r._onChange=function(e){var t=(e=e||window.event).target||e.srcElement;t&&(l(t,"pika-select-month")?r.gotoMonth(t.value):l(t,"pika-select-year")&&r.gotoYear(t.value))},r._onKeyChange=function(e){if(e=e||window.event,r.isVisible())switch(e.keyCode){case 13:case 27:d.field&&d.field.blur();break;case 37:r.adjustDate("subtract",1);break;case 38:r.adjustDate("subtract",7);break;case 39:r.adjustDate("add",1);break;case 40:r.adjustDate("add",7);break;case 8:case 46:r.setDate(null)}},r._parseFieldValue=function(){if(d.parse)return d.parse(d.field.value,d.format);if(t){var n=e(d.field.value,d.format,d.formatStrict);return n&&n.isValid()?n.toDate():null}return new Date(Date.parse(d.field.value))},r._onInputChange=function(e){var t;e.firedBy!==r&&(t=r._parseFieldValue(),c(t)&&r.setDate(t),r._v||r.show())},r._onInputFocus=function(){r.show()},r._onInputClick=function(){r.show()},r._onInputBlur=function(){var e=a.activeElement;do{if(l(e,"pika-single"))return}while(e=e.parentNode);r._c||(r._b=i((function(){r.hide()}),50)),r._c=!1},r._onClick=function(e){var t=(e=e||window.event).target||e.srcElement,a=t;if(t){!n&&l(t,"pika-select")&&(t.onchange||(t.setAttribute("onchange","return;"),o(t,"change",r._onChange)));do{if(l(a,"pika-single")||a===d.trigger)return}while(a=a.parentNode);r._v&&t!==d.trigger&&a!==d.trigger&&r.hide()}},r.el=a.createElement("div"),r.el.className="pika-single"+(d.isRTL?" is-rtl":"")+(d.theme?" "+d.theme:""),o(r.el,"mousedown",r._onMouseDown,!0),o(r.el,"touchend",r._onMouseDown,!0),o(r.el,"change",r._onChange),d.keyboardInput&&o(a,"keydown",r._onKeyChange),d.field&&(d.container?d.container.appendChild(r.el):d.bound?a.body.appendChild(r.el):d.field.parentNode.insertBefore(r.el,d.field.nextSibling),o(d.field,"change",r._onInputChange),d.defaultDate||(d.defaultDate=r._parseFieldValue(),d.setDefaultDate=!0));var h=d.defaultDate;c(h)?d.setDefaultDate?r.setDate(h,!0):r.gotoDate(h):r.gotoDate(new Date),d.bound?(this.hide(),r.el.className+=" is-bound",o(d.trigger,"click",r._onInputClick),o(d.trigger,"focus",r._onInputFocus),o(d.trigger,"blur",r._onInputBlur)):this.show()};return A.prototype={config:function(e){this._o||(this._o=b({},_,!0));var t=b(this._o,e,!0);t.isRTL=!!t.isRTL,t.field=t.field&&t.field.nodeName?t.field:null,t.theme="string"==typeof t.theme&&t.theme?t.theme:null,t.bound=!!(void 0!==t.bound?t.field&&t.bound:t.field),t.trigger=t.trigger&&t.trigger.nodeName?t.trigger:t.field,t.disableWeekends=!!t.disableWeekends,t.disableDayFn="function"==typeof t.disableDayFn?t.disableDayFn:null;var n=parseInt(t.numberOfMonths,10)||1;if(t.numberOfMonths=n>4?4:n,c(t.minDate)||(t.minDate=!1),c(t.maxDate)||(t.maxDate=!1),t.minDate&&t.maxDate&&t.maxDate100&&(t.yearRange=100);return t},toString:function(n){return n=n||this._o.format,c(this._d)?this._o.toString?this._o.toString(this._d,n):t?e(this._d).format(n):this._d.toDateString():""},getMoment:function(){return t?e(this._d):null},setMoment:function(n,a){t&&e.isMoment(n)&&this.setDate(n.toDate(),a)},getDate:function(){return c(this._d)?new Date(this._d.getTime()):null},setDate:function(e,t){if(!e)return this._d=null,this._o.field&&(this._o.field.value="",v(this._o.field,"change",{firedBy:this})),this.draw();if("string"==typeof e&&(e=new Date(Date.parse(e))),c(e)){var n=this._o.minDate,a=this._o.maxDate;c(n)&&ea&&(e=a),this._d=new Date(e.getTime()),p(this._d),this.gotoDate(this._d),this._o.field&&(this._o.field.value=this.toString(),v(this._o.field,"change",{firedBy:this})),t||"function"!=typeof this._o.onSelect||this._o.onSelect.call(this,this.getDate())}},clear:function(){this.setDate(null)},gotoDate:function(e){var t=!0;if(c(e)){if(this.calendars){var n=new Date(this.calendars[0].year,this.calendars[0].month,1),a=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),i=e.getTime();a.setMonth(a.getMonth()+1),a.setDate(a.getDate()-1),t=i=o&&(this._y=o,!isNaN(r)&&this._m>r&&(this._m=r));for(var d=0;d'+N(this,d,this.calendars[d].year,this.calendars[d].month,this.calendars[0].year,t)+this.render(this.calendars[d].year,this.calendars[d].month,t)+"";this.el.innerHTML=l,n.bound&&"hidden"!==n.field.type&&i((function(){n.trigger.focus()}),1),"function"==typeof this._o.onDraw&&this._o.onDraw(this),n.bound&&n.field.setAttribute("aria-label",n.ariaLabel)}},adjustPosition:function(){var e,t,n,i,o,s,r,l,u,c,f,g;if(!this._o.container){if(this.el.style.position="absolute",t=e=this._o.trigger,n=this.el.offsetWidth,i=this.el.offsetHeight,o=window.innerWidth||a.documentElement.clientWidth,s=window.innerHeight||a.documentElement.clientHeight,r=window.pageYOffset||a.body.scrollTop||a.documentElement.scrollTop,f=!0,g=!0,"function"==typeof e.getBoundingClientRect)l=(c=e.getBoundingClientRect()).left+window.pageXOffset,u=c.bottom+window.pageYOffset;else for(l=t.offsetLeft,u=t.offsetTop+t.offsetHeight;t=t.offsetParent;)l+=t.offsetLeft,u+=t.offsetTop;(this._o.reposition&&l+n>o||this._o.position.indexOf("right")>-1&&l-n+e.offsetWidth>0)&&(l=l-n+e.offsetWidth,f=!1),(this._o.reposition&&u+i>s+r||this._o.position.indexOf("top")>-1&&u-i-e.offsetHeight>0)&&(u=u-i-e.offsetHeight,g=!1),this.el.style.left=l+"px",this.el.style.top=u+"px",d(this.el,f?"left-aligned":"right-aligned"),d(this.el,g?"bottom-aligned":"top-aligned"),h(this.el,f?"right-aligned":"left-aligned"),h(this.el,g?"top-aligned":"bottom-aligned")}},render:function(e,t,n){var a=this._o,i=new Date,o=m(e,t),s=new Date(e,t,1).getDay(),r=[],l=[];p(i),a.firstDay>0&&(s-=a.firstDay)<0&&(s+=7);for(var d=0===t?11:t-1,h=11===t?0:t+1,u=0===t?e-1:e,g=11===t?e+1:e,b=m(u,d),v=o+s,D=v;D>7;)D-=7;v+=7-D;for(var _=!1,w=0,M=0;w=o+s,T=w-s+1,Y=t,O=e,j=a.startRange&&y(a.startRange,S),L=a.endRange&&y(a.endRange,S),W=a.startRange&&a.endRange&&a.startRangea.maxDate||a.disableWeekends&&f(S)||a.disableDayFn&&a.disableDayFn(S),isEmpty:I,isStartRange:j,isEndRange:L,isInRange:W,showDaysInNextAndPreviousMonths:a.showDaysInNextAndPreviousMonths,enableSelectionDaysInNextAndPreviousMonths:a.enableSelectionDaysInNextAndPreviousMonths};a.pickWholeWeek&&E&&(_=!0),l.push(k(F)),7==++M&&(a.showWeekNumber&&l.unshift(x(w-s,t,e,a.firstWeekOfYearMinDays)),r.push(R(l,a.isRTL,a.pickWholeWeek,_)),l=[],M=0,_=!1)}return C(a,r,n)},isVisible:function(){return this._v},show:function(){this.isVisible()||(this._v=!0,this.draw(),h(this.el,"is-hidden"),this._o.bound&&(o(a,"click",this._onClick),this.adjustPosition()),"function"==typeof this._o.onOpen&&this._o.onOpen.call(this))},hide:function(){var e=this._v;!1!==e&&(this._o.bound&&s(a,"click",this._onClick),this._o.container||(this.el.style.position="static",this.el.style.left="auto",this.el.style.top="auto"),d(this.el,"is-hidden"),this._v=!1,void 0!==e&&"function"==typeof this._o.onClose&&this._o.onClose.call(this))},destroy:function(){var e=this._o;this.hide(),s(this.el,"mousedown",this._onMouseDown,!0),s(this.el,"touchend",this._onMouseDown,!0),s(this.el,"change",this._onChange),e.keyboardInput&&s(a,"keydown",this._onKeyChange),e.field&&(s(e.field,"change",this._onInputChange),e.bound&&(s(e.trigger,"click",this._onInputClick),s(e.trigger,"focus",this._onInputFocus),s(e.trigger,"blur",this._onInputBlur))),this.el.parentNode&&this.el.parentNode.removeChild(this.el)}},A}(a)}(),function(){function e(e,t){const n=document.createElement("input");return n.type="hidden",n.name=e,n.value=t,n}function t(t){var n=t.getAttribute("data-confirm");if(n&&!window.confirm(n))return;const a=e("_method",t.getAttribute("data-method")),i=e("_csrf_token",t.getAttribute("data-csrf")),o=document.createElement("form");o.method="get"===t.getAttribute("data-method")?"get":"post",o.action=t.getAttribute("data-to"),o.style.display="hidden",o.appendChild(i),o.appendChild(a),document.body.appendChild(o),o.submit()}window.addEventListener("click",(function(e){for(var n=e.target;n&&n.getAttribute;){if(n.getAttribute("data-method"))return t(n),e.preventDefault(),!1;n=n.parentNode}}),!1)}(),window.onload=()=>{const n=Array.prototype.slice;n.call(document.querySelectorAll(".torch-nav a"),0).forEach((e=>{const t=window.location.href,n=e.getAttribute("href");RegExp(n).test(t)&&e.classList.add("active")})),n.call(document.querySelectorAll("button.torch-flash-close"),0).forEach((e=>{e.addEventListener("click",(function(){const t=e.closest(".torch-flash");t.parentNode.removeChild(t)}))}));const a=document.querySelector("form#torch-filters-form");if(!a)return;a.addEventListener("submit",(function(e){e.preventDefault();let t=!0;n.call(this.querySelectorAll(".field"),0).forEach((e=>{const n=e.getElementsByTagName("label")[0].textContent,a=e.getElementsByClassName("start")[0],i=e.getElementsByClassName("end")[0];a&&i&&(""===a.value&&""!==i.value?(window.alert(`Please select a start date for the ${n} field`),t=!1):""===i.value&&""!==a.value&&(window.alert(`Please select an end at date for the ${n} field`),t=!1))})),t&&(n.call(this.querySelectorAll("input, select"),0).forEach((e=>{""===e.value&&(e.disabled=!0)})),e.target.submit())})),n.call(document.querySelectorAll("select.filter-type"),0).forEach((e=>{e.addEventListener("change",(e=>{e.target.nextElementSibling.name=e.target.value}))}));const i=e=>e.toLocaleString("en-us",{year:"numeric",month:"2-digit",day:"2-digit"}).replace(/(\d+)\/(\d+)\/(\d+)/,"$3-$1-$2"),o=e=>{const t=e.split("-");if(3===t.length)return new Date(t[0],t[1]-1,t[2])};n.call(document.querySelectorAll(".datepicker"),0).forEach((n=>{const a=o(n.value)||new Date;new(e(t))({field:n,toString:e=>i(e),onSelect:e=>n.value=i(e),defaultDate:a,parse:o,theme:"torch-datepicker"})})),n.call(document.querySelectorAll(".torch-flash-close"),0).forEach((e=>{e.addEventListener("click",(function(t){let n=e;for(;(n=n.parentElement)&&!(n.matches||n.matchesSelector).call(n,"torch-flash");)n.parentNode.removeChild(n)}))}))}}();
+ */!function(e,n){var a;try{a=$d2b378008f565d8d$import$a2cb963221bbaab7}catch(e){}t=function(e){"use strict";var t="function"==typeof e,n=!!window.addEventListener,a=window.document,i=window.setTimeout,s=function(e,t,a,i){n?e.addEventListener(t,a,!!i):e.attachEvent("on"+t,a)},o=function(e,t,a,i){n?e.removeEventListener(t,a,!!i):e.detachEvent("on"+t,a)},r=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},l=function(e,t){return-1!==(" "+e.className+" ").indexOf(" "+t+" ")},d=function(e,t){l(e,t)||(e.className=""===e.className?t:e.className+" "+t)},h=function(e,t){e.className=r((" "+e.className+" ").replace(" "+t+" "," "))},u=function(e){return/Array/.test(Object.prototype.toString.call(e))},c=function(e){return/Date/.test(Object.prototype.toString.call(e))&&!isNaN(e.getTime())},f=function(e){var t=e.getDay();return 0===t||6===t},g=function(e){return e%4==0&&e%100!=0||e%400==0},m=function(e,t){return[31,g(e)?29:28,31,30,31,30,31,31,30,31,30,31][t]},p=function(e){c(e)&&e.setHours(0,0,0,0)},y=function(e,t){return e.getTime()===t.getTime()},b=function(e,t,n){var a,i;for(a in t)(i=void 0!==e[a])&&"object"==typeof t[a]&&null!==t[a]&&void 0===t[a].nodeName?c(t[a])?n&&(e[a]=new Date(t[a].getTime())):u(t[a])?n&&(e[a]=t[a].slice(0)):e[a]=b({},t[a],n):!n&&i||(e[a]=t[a]);return e},v=function(e,t,n){var i;a.createEvent?((i=a.createEvent("HTMLEvents")).initEvent(t,!0,!1),i=b(i,n),e.dispatchEvent(i)):a.createEventObject&&(i=a.createEventObject(),i=b(i,n),e.fireEvent("on"+t,i))},D=function(e){return e.month<0&&(e.year-=Math.ceil(Math.abs(e.month)/12),e.month+=12),e.month>11&&(e.year+=Math.floor(Math.abs(e.month)/12),e.month-=12),e},_={field:null,bound:void 0,ariaLabel:"Use the arrow keys to pick a date",position:"bottom left",reposition:!0,format:"YYYY-MM-DD",toString:null,parse:null,defaultDate:null,setDefaultDate:!1,firstDay:0,firstWeekOfYearMinDays:4,formatStrict:!1,minDate:null,maxDate:null,yearRange:10,showWeekNumber:!1,pickWholeWeek:!1,minYear:0,maxYear:9999,minMonth:void 0,maxMonth:void 0,startRange:null,endRange:null,isRTL:!1,yearSuffix:"",showMonthAfterYear:!1,showDaysInNextAndPreviousMonths:!1,enableSelectionDaysInNextAndPreviousMonths:!1,numberOfMonths:1,mainCalendar:"left",container:void 0,blurFieldOnSelect:!0,i18n:{previousMonth:"Previous Month",nextMonth:"Next Month",months:["January","February","March","April","May","June","July","August","September","October","November","December"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},theme:null,events:[],onSelect:null,onOpen:null,onClose:null,onDraw:null,keyboardInput:!0},w=function(e,t,n){for(t+=e.firstDay;t>=7;)t-=7;return n?e.i18n.weekdaysShort[t]:e.i18n.weekdays[t]},k=function(e){var t=[],n="false";if(e.isEmpty){if(!e.showDaysInNextAndPreviousMonths)return' ';t.push("is-outside-current-month"),e.enableSelectionDaysInNextAndPreviousMonths||t.push("is-selection-disabled")}return e.isDisabled&&t.push("is-disabled"),e.isToday&&t.push("is-today"),e.isSelected&&(t.push("is-selected"),n="true"),e.hasEvent&&t.push("has-event"),e.isInRange&&t.push("is-inrange"),e.isStartRange&&t.push("is-startrange"),e.isEndRange&&t.push("is-endrange"),''+e.day+" "},M=function(e,t){e.setHours(0,0,0,0);var n=e.getDate(),a=e.getDay(),i=t,s=i-1,o=7,r=function(e){return(e+o-1)%o};e.setDate(n+s-r(a));var l=new Date(e.getFullYear(),0,i),d=864e5,h=(e.getTime()-l.getTime())/d;return 1+Math.round((h-s+r(l.getDay()))/o)},x=function(n,a,i,s){var o=new Date(i,a,n);return''+(t?e(o).isoWeek():M(o,s))+" "},R=function(e,t,n,a){return''+(t?e.reverse():e).join("")+" "},S=function(e){return""+e.join("")+" "},E=function(e){var t,n=[];for(e.showWeekNumber&&n.push(" "),t=0;t<7;t++)n.push(''+w(e,t,!0)+" ");return""+(e.isRTL?n.reverse():n).join("")+" "},N=function(e,t,n,a,i,s){var o,r,l,d,h,c=e._o,f=n===c.minYear,g=n===c.maxYear,m='',p=!0,y=!0;for(l=[],o=0;o<12;o++)l.push('
c.maxMonth?' disabled="disabled"':"")+">"+c.i18n.months[o]+" ");for(d='
'+c.i18n.months[a]+''+l.join("")+"
",u(c.yearRange)?(o=c.yearRange[0],r=c.yearRange[1]+1):(o=n-c.yearRange,r=1+n+c.yearRange),l=[];o
=c.minYear&&l.push('"+o+" ");return h=''+n+c.yearSuffix+''+l.join("")+"
",c.showMonthAfterYear?m+=h+d:m+=d+h,f&&(0===a||c.minMonth>=a)&&(p=!1),g&&(11===a||c.maxMonth<=a)&&(y=!1),0===t&&(m+=''+c.i18n.previousMonth+" "),t===e._o.numberOfMonths-1&&(m+=''+c.i18n.nextMonth+" "),m+" "},C=function(e,t,n){return'"},A=function(o){var r=this,d=r.config(o);r._onMouseDown=function(e){if(r._v){var t=(e=e||window.event).target||e.srcElement;if(t)if(l(t,"is-disabled")||(!l(t,"pika-button")||l(t,"is-empty")||l(t.parentNode,"is-disabled")?l(t,"pika-prev")?r.prevMonth():l(t,"pika-next")&&r.nextMonth():(r.setDate(new Date(t.getAttribute("data-pika-year"),t.getAttribute("data-pika-month"),t.getAttribute("data-pika-day"))),d.bound&&i((function(){r.hide(),d.blurFieldOnSelect&&d.field&&d.field.blur()}),100))),l(t,"pika-select"))r._c=!0;else{if(!e.preventDefault)return e.returnValue=!1,!1;e.preventDefault()}}},r._onChange=function(e){var t=(e=e||window.event).target||e.srcElement;t&&(l(t,"pika-select-month")?r.gotoMonth(t.value):l(t,"pika-select-year")&&r.gotoYear(t.value))},r._onKeyChange=function(e){if(e=e||window.event,r.isVisible())switch(e.keyCode){case 13:case 27:d.field&&d.field.blur();break;case 37:r.adjustDate("subtract",1);break;case 38:r.adjustDate("subtract",7);break;case 39:r.adjustDate("add",1);break;case 40:r.adjustDate("add",7);break;case 8:case 46:r.setDate(null)}},r._parseFieldValue=function(){if(d.parse)return d.parse(d.field.value,d.format);if(t){var n=e(d.field.value,d.format,d.formatStrict);return n&&n.isValid()?n.toDate():null}return new Date(Date.parse(d.field.value))},r._onInputChange=function(e){var t;e.firedBy!==r&&(t=r._parseFieldValue(),c(t)&&r.setDate(t),r._v||r.show())},r._onInputFocus=function(){r.show()},r._onInputClick=function(){r.show()},r._onInputBlur=function(){var e=a.activeElement;do{if(l(e,"pika-single"))return}while(e=e.parentNode);r._c||(r._b=i((function(){r.hide()}),50)),r._c=!1},r._onClick=function(e){var t=(e=e||window.event).target||e.srcElement,a=t;if(t){!n&&l(t,"pika-select")&&(t.onchange||(t.setAttribute("onchange","return;"),s(t,"change",r._onChange)));do{if(l(a,"pika-single")||a===d.trigger)return}while(a=a.parentNode);r._v&&t!==d.trigger&&a!==d.trigger&&r.hide()}},r.el=a.createElement("div"),r.el.className="pika-single"+(d.isRTL?" is-rtl":"")+(d.theme?" "+d.theme:""),s(r.el,"mousedown",r._onMouseDown,!0),s(r.el,"touchend",r._onMouseDown,!0),s(r.el,"change",r._onChange),d.keyboardInput&&s(a,"keydown",r._onKeyChange),d.field&&(d.container?d.container.appendChild(r.el):d.bound?a.body.appendChild(r.el):d.field.parentNode.insertBefore(r.el,d.field.nextSibling),s(d.field,"change",r._onInputChange),d.defaultDate||(d.defaultDate=r._parseFieldValue(),d.setDefaultDate=!0));var h=d.defaultDate;c(h)?d.setDefaultDate?r.setDate(h,!0):r.gotoDate(h):r.gotoDate(new Date),d.bound?(this.hide(),r.el.className+=" is-bound",s(d.trigger,"click",r._onInputClick),s(d.trigger,"focus",r._onInputFocus),s(d.trigger,"blur",r._onInputBlur)):this.show()};return A.prototype={config:function(e){this._o||(this._o=b({},_,!0));var t=b(this._o,e,!0);t.isRTL=!!t.isRTL,t.field=t.field&&t.field.nodeName?t.field:null,t.theme="string"==typeof t.theme&&t.theme?t.theme:null,t.bound=!!(void 0!==t.bound?t.field&&t.bound:t.field),t.trigger=t.trigger&&t.trigger.nodeName?t.trigger:t.field,t.disableWeekends=!!t.disableWeekends,t.disableDayFn="function"==typeof t.disableDayFn?t.disableDayFn:null;var n=parseInt(t.numberOfMonths,10)||1;if(t.numberOfMonths=n>4?4:n,c(t.minDate)||(t.minDate=!1),c(t.maxDate)||(t.maxDate=!1),t.minDate&&t.maxDate&&t.maxDate100&&(t.yearRange=100);return t},toString:function(n){return n=n||this._o.format,c(this._d)?this._o.toString?this._o.toString(this._d,n):t?e(this._d).format(n):this._d.toDateString():""},getMoment:function(){return t?e(this._d):null},setMoment:function(n,a){t&&e.isMoment(n)&&this.setDate(n.toDate(),a)},getDate:function(){return c(this._d)?new Date(this._d.getTime()):null},setDate:function(e,t){if(!e)return this._d=null,this._o.field&&(this._o.field.value="",v(this._o.field,"change",{firedBy:this})),this.draw();if("string"==typeof e&&(e=new Date(Date.parse(e))),c(e)){var n=this._o.minDate,a=this._o.maxDate;c(n)&&ea&&(e=a),this._d=new Date(e.getTime()),p(this._d),this.gotoDate(this._d),this._o.field&&(this._o.field.value=this.toString(),v(this._o.field,"change",{firedBy:this})),t||"function"!=typeof this._o.onSelect||this._o.onSelect.call(this,this.getDate())}},clear:function(){this.setDate(null)},gotoDate:function(e){var t=!0;if(c(e)){if(this.calendars){var n=new Date(this.calendars[0].year,this.calendars[0].month,1),a=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),i=e.getTime();a.setMonth(a.getMonth()+1),a.setDate(a.getDate()-1),t=i=s&&(this._y=s,!isNaN(r)&&this._m>r&&(this._m=r));for(var d=0;d'+N(this,d,this.calendars[d].year,this.calendars[d].month,this.calendars[0].year,t)+this.render(this.calendars[d].year,this.calendars[d].month,t)+"";this.el.innerHTML=l,n.bound&&"hidden"!==n.field.type&&i((function(){n.trigger.focus()}),1),"function"==typeof this._o.onDraw&&this._o.onDraw(this),n.bound&&n.field.setAttribute("aria-label",n.ariaLabel)}},adjustPosition:function(){var e,t,n,i,s,o,r,l,u,c,f,g;if(!this._o.container){if(this.el.style.position="absolute",t=e=this._o.trigger,n=this.el.offsetWidth,i=this.el.offsetHeight,s=window.innerWidth||a.documentElement.clientWidth,o=window.innerHeight||a.documentElement.clientHeight,r=window.pageYOffset||a.body.scrollTop||a.documentElement.scrollTop,f=!0,g=!0,"function"==typeof e.getBoundingClientRect)l=(c=e.getBoundingClientRect()).left+window.pageXOffset,u=c.bottom+window.pageYOffset;else for(l=t.offsetLeft,u=t.offsetTop+t.offsetHeight;t=t.offsetParent;)l+=t.offsetLeft,u+=t.offsetTop;(this._o.reposition&&l+n>s||this._o.position.indexOf("right")>-1&&l-n+e.offsetWidth>0)&&(l=l-n+e.offsetWidth,f=!1),(this._o.reposition&&u+i>o+r||this._o.position.indexOf("top")>-1&&u-i-e.offsetHeight>0)&&(u=u-i-e.offsetHeight,g=!1),this.el.style.left=l+"px",this.el.style.top=u+"px",d(this.el,f?"left-aligned":"right-aligned"),d(this.el,g?"bottom-aligned":"top-aligned"),h(this.el,f?"right-aligned":"left-aligned"),h(this.el,g?"top-aligned":"bottom-aligned")}},render:function(e,t,n){var a=this._o,i=new Date,s=m(e,t),o=new Date(e,t,1).getDay(),r=[],l=[];p(i),a.firstDay>0&&(o-=a.firstDay)<0&&(o+=7);for(var d=0===t?11:t-1,h=11===t?0:t+1,u=0===t?e-1:e,g=11===t?e+1:e,b=m(u,d),v=s+o,D=v;D>7;)D-=7;v+=7-D;for(var _=!1,w=0,M=0;w=s+o,T=w-o+1,Y=t,O=e,j=a.startRange&&y(a.startRange,S),L=a.endRange&&y(a.endRange,S),W=a.startRange&&a.endRange&&a.startRangea.maxDate||a.disableWeekends&&f(S)||a.disableDayFn&&a.disableDayFn(S),isEmpty:I,isStartRange:j,isEndRange:L,isInRange:W,showDaysInNextAndPreviousMonths:a.showDaysInNextAndPreviousMonths,enableSelectionDaysInNextAndPreviousMonths:a.enableSelectionDaysInNextAndPreviousMonths};a.pickWholeWeek&&E&&(_=!0),l.push(k(F)),7==++M&&(a.showWeekNumber&&l.unshift(x(w-o,t,e,a.firstWeekOfYearMinDays)),r.push(R(l,a.isRTL,a.pickWholeWeek,_)),l=[],M=0,_=!1)}return C(a,r,n)},isVisible:function(){return this._v},show:function(){this.isVisible()||(this._v=!0,this.draw(),h(this.el,"is-hidden"),this._o.bound&&(s(a,"click",this._onClick),this.adjustPosition()),"function"==typeof this._o.onOpen&&this._o.onOpen.call(this))},hide:function(){var e=this._v;!1!==e&&(this._o.bound&&o(a,"click",this._onClick),this._o.container||(this.el.style.position="static",this.el.style.left="auto",this.el.style.top="auto"),d(this.el,"is-hidden"),this._v=!1,void 0!==e&&"function"==typeof this._o.onClose&&this._o.onClose.call(this))},destroy:function(){var e=this._o;this.hide(),o(this.el,"mousedown",this._onMouseDown,!0),o(this.el,"touchend",this._onMouseDown,!0),o(this.el,"change",this._onChange),e.keyboardInput&&o(a,"keydown",this._onKeyChange),e.field&&(o(e.field,"change",this._onInputChange),e.bound&&(o(e.trigger,"click",this._onInputClick),o(e.trigger,"focus",this._onInputFocus),o(e.trigger,"blur",this._onInputBlur))),this.el.parentNode&&this.el.parentNode.removeChild(this.el)}},A}(a)}(),function(){function e(e,t){const n=document.createElement("input");return n.type="hidden",n.name=e,n.value=t,n}function t(t){var n=t.getAttribute("data-confirm");if(n&&!window.confirm(n))return;const a=e("_method",t.getAttribute("data-method")),i=e("_csrf_token",t.getAttribute("data-csrf")),s=document.createElement("form");s.method="get"===t.getAttribute("data-method")?"get":"post",s.action=t.getAttribute("data-to"),s.style.display="hidden",s.appendChild(i),s.appendChild(a),document.body.appendChild(s),s.submit()}window.addEventListener("click",(function(e){for(var n=e.target;n&&n.getAttribute;){if(n.getAttribute("data-method"))return t(n),e.preventDefault(),!1;n=n.parentNode}}),!1)}(),window.onload=()=>{const n=Array.prototype.slice;n.call(document.querySelectorAll(".torch-nav a"),0).forEach((e=>{const t=window.location.href,n=new URL(e.getAttribute("href"),document.baseURI).href;t.startsWith(n)&&e.classList.add("active")})),n.call(document.querySelectorAll("button.torch-flash-close"),0).forEach((e=>{e.addEventListener("click",(function(){const t=e.closest(".torch-flash");t.parentNode.removeChild(t)}))}));const a=document.querySelector("form#torch-filters-form");if(!a)return;a.addEventListener("submit",(function(e){e.preventDefault();let t=!0;n.call(this.querySelectorAll(".field"),0).forEach((e=>{const n=e.getElementsByTagName("label")[0].textContent,a=e.getElementsByClassName("start")[0],i=e.getElementsByClassName("end")[0];a&&i&&(""===a.value&&""!==i.value?(window.alert(`Please select a start date for the ${n} field`),t=!1):""===i.value&&""!==a.value&&(window.alert(`Please select an end at date for the ${n} field`),t=!1))})),t&&(n.call(this.querySelectorAll("input, select"),0).forEach((e=>{""===e.value&&(e.disabled=!0)})),e.target.submit())})),n.call(document.querySelectorAll("select.filter-type"),0).forEach((e=>{e.addEventListener("change",(e=>{e.target.nextElementSibling.name=e.target.value}))}));const i=e=>e.toLocaleString("en-us",{year:"numeric",month:"2-digit",day:"2-digit"}).replace(/(\d+)\/(\d+)\/(\d+)/,"$3-$1-$2"),s=e=>{const t=e.split("-");if(3===t.length)return new Date(t[0],t[1]-1,t[2])};n.call(document.querySelectorAll(".datepicker"),0).forEach((n=>{const a=s(n.value)||new Date;new(e(t))({field:n,toString:e=>i(e),onSelect:e=>n.value=i(e),defaultDate:a,parse:s,theme:"torch-datepicker"})})),n.call(document.querySelectorAll(".torch-flash-close"),0).forEach((e=>{e.addEventListener("click",(function(t){let n=e;for(;(n=n.parentElement)&&!(n.matches||n.matchesSelector).call(n,"torch-flash");)n.parentNode.removeChild(n)}))}))}}();
//# sourceMappingURL=torch.js.map
diff --git a/priv/static/torch.js.map b/priv/static/torch.js.map
index 6f1a2577..4798fedf 100644
--- a/priv/static/torch.js.map
+++ b/priv/static/torch.js.map
@@ -1 +1 @@
-{"mappings":"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","sources":["node_modules/pikaday/pikaday.js","js/torch.js"],"sourcesContent":["/*!\n * Pikaday\n *\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday\n */\n\n(function (root, factory)\n{\n 'use strict';\n\n var moment;\n if (typeof exports === 'object') {\n // CommonJS module\n // Load moment.js as an optional dependency\n try { moment = require('moment'); } catch (e) {}\n module.exports = factory(moment);\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(function (req)\n {\n // Load moment.js as an optional dependency\n var id = 'moment';\n try { moment = req(id); } catch (e) {}\n return factory(moment);\n });\n } else {\n root.Pikaday = factory(root.moment);\n }\n}(this, function (moment)\n{\n 'use strict';\n\n /**\n * feature detection and helper functions\n */\n var hasMoment = typeof moment === 'function',\n\n hasEventListeners = !!window.addEventListener,\n\n document = window.document,\n\n sto = window.setTimeout,\n\n addEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.addEventListener(e, callback, !!capture);\n } else {\n el.attachEvent('on' + e, callback);\n }\n },\n\n removeEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.removeEventListener(e, callback, !!capture);\n } else {\n el.detachEvent('on' + e, callback);\n }\n },\n\n trim = function(str)\n {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\n },\n\n hasClass = function(el, cn)\n {\n return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\n },\n\n addClass = function(el, cn)\n {\n if (!hasClass(el, cn)) {\n el.className = (el.className === '') ? cn : el.className + ' ' + cn;\n }\n },\n\n removeClass = function(el, cn)\n {\n el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\n },\n\n isArray = function(obj)\n {\n return (/Array/).test(Object.prototype.toString.call(obj));\n },\n\n isDate = function(obj)\n {\n return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n },\n\n isWeekend = function(date)\n {\n var day = date.getDay();\n return day === 0 || day === 6;\n },\n\n isLeapYear = function(year)\n {\n // solution lifted from date.js (MIT license): https://github.com/datejs/Datejs\n return ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);\n },\n\n getDaysInMonth = function(year, month)\n {\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n },\n\n setToStartOfDay = function(date)\n {\n if (isDate(date)) date.setHours(0,0,0,0);\n },\n\n compareDates = function(a,b)\n {\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n return a.getTime() === b.getTime();\n },\n\n extend = function(to, from, overwrite)\n {\n var prop, hasProp;\n for (prop in from) {\n hasProp = to[prop] !== undefined;\n if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\n if (isDate(from[prop])) {\n if (overwrite) {\n to[prop] = new Date(from[prop].getTime());\n }\n }\n else if (isArray(from[prop])) {\n if (overwrite) {\n to[prop] = from[prop].slice(0);\n }\n } else {\n to[prop] = extend({}, from[prop], overwrite);\n }\n } else if (overwrite || !hasProp) {\n to[prop] = from[prop];\n }\n }\n return to;\n },\n\n fireEvent = function(el, eventName, data)\n {\n var ev;\n\n if (document.createEvent) {\n ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, true, false);\n ev = extend(ev, data);\n el.dispatchEvent(ev);\n } else if (document.createEventObject) {\n ev = document.createEventObject();\n ev = extend(ev, data);\n el.fireEvent('on' + eventName, ev);\n }\n },\n\n adjustCalendar = function(calendar) {\n if (calendar.month < 0) {\n calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\n calendar.month += 12;\n }\n if (calendar.month > 11) {\n calendar.year += Math.floor(Math.abs(calendar.month)/12);\n calendar.month -= 12;\n }\n return calendar;\n },\n\n /**\n * defaults and localisation\n */\n defaults = {\n\n // bind the picker to a form field\n field: null,\n\n // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\n bound: undefined,\n\n // data-attribute on the input field with an aria assistance text (only applied when `bound` is set)\n ariaLabel: 'Use the arrow keys to pick a date',\n\n // position of the datepicker, relative to the field (default to bottom & left)\n // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\n position: 'bottom left',\n\n // automatically fit in the viewport even if it means repositioning from the position option\n reposition: true,\n\n // the default output format for `.toString()` and `field` value\n format: 'YYYY-MM-DD',\n\n // the toString function which gets passed a current date object and format\n // and returns a string\n toString: null,\n\n // used to create date object from current input string\n parse: null,\n\n // the initial date to view when first opened\n defaultDate: null,\n\n // make the `defaultDate` the initial selected value\n setDefaultDate: false,\n\n // first day of week (0: Sunday, 1: Monday etc)\n firstDay: 0,\n\n // minimum number of days in the week that gets week number one\n // default ISO 8601, week 01 is the week with the first Thursday (4)\n firstWeekOfYearMinDays: 4,\n\n // the default flag for moment's strict date parsing\n formatStrict: false,\n\n // the minimum/earliest date that can be selected\n minDate: null,\n // the maximum/latest date that can be selected\n maxDate: null,\n\n // number of years either side, or array of upper/lower range\n yearRange: 10,\n\n // show week numbers at head of row\n showWeekNumber: false,\n\n // Week picker mode\n pickWholeWeek: false,\n\n // used internally (don't config outside)\n minYear: 0,\n maxYear: 9999,\n minMonth: undefined,\n maxMonth: undefined,\n\n startRange: null,\n endRange: null,\n\n isRTL: false,\n\n // Additional text to append to the year in the calendar title\n yearSuffix: '',\n\n // Render the month after year in the calendar title\n showMonthAfterYear: false,\n\n // Render days of the calendar grid that fall in the next or previous month\n showDaysInNextAndPreviousMonths: false,\n\n // Allows user to select days that fall in the next or previous month\n enableSelectionDaysInNextAndPreviousMonths: false,\n\n // how many months are visible\n numberOfMonths: 1,\n\n // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\n // only used for the first display or when a selected date is not visible\n mainCalendar: 'left',\n\n // Specify a DOM element to render the calendar in\n container: undefined,\n\n // Blur field when date is selected\n blurFieldOnSelect : true,\n\n // internationalization\n i18n: {\n previousMonth : 'Previous Month',\n nextMonth : 'Next Month',\n months : ['January','February','March','April','May','June','July','August','September','October','November','December'],\n weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\n },\n\n // Theme Classname\n theme: null,\n\n // events array\n events: [],\n\n // callback function\n onSelect: null,\n onOpen: null,\n onClose: null,\n onDraw: null,\n\n // Enable keyboard input\n keyboardInput: true\n },\n\n\n /**\n * templating functions to abstract HTML rendering\n */\n renderDayName = function(opts, day, abbr)\n {\n day += opts.firstDay;\n while (day >= 7) {\n day -= 7;\n }\n return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\n },\n\n renderDay = function(opts)\n {\n var arr = [];\n var ariaSelected = 'false';\n if (opts.isEmpty) {\n if (opts.showDaysInNextAndPreviousMonths) {\n arr.push('is-outside-current-month');\n\n if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\n arr.push('is-selection-disabled');\n }\n\n } else {\n return ' ';\n }\n }\n if (opts.isDisabled) {\n arr.push('is-disabled');\n }\n if (opts.isToday) {\n arr.push('is-today');\n }\n if (opts.isSelected) {\n arr.push('is-selected');\n ariaSelected = 'true';\n }\n if (opts.hasEvent) {\n arr.push('has-event');\n }\n if (opts.isInRange) {\n arr.push('is-inrange');\n }\n if (opts.isStartRange) {\n arr.push('is-startrange');\n }\n if (opts.isEndRange) {\n arr.push('is-endrange');\n }\n return '' +\n '' +\n opts.day +\n ' ' +\n ' ';\n },\n\n isoWeek = function(date, firstWeekOfYearMinDays) {\n // Ensure we're at the start of the day.\n date.setHours(0, 0, 0, 0);\n\n // Thursday in current week decides the year because January 4th\n // is always in the first week according to ISO8601.\n var yearDay = date.getDate(),\n weekDay = date.getDay(),\n dayInFirstWeek = firstWeekOfYearMinDays,\n dayShift = dayInFirstWeek - 1, // counting starts at 0\n daysPerWeek = 7,\n prevWeekDay = function(day) { return (day + daysPerWeek - 1) % daysPerWeek; };\n\n // Adjust to Thursday in week 1 and count number of weeks from date to week 1.\n date.setDate(yearDay + dayShift - prevWeekDay(weekDay));\n\n var jan4th = new Date(date.getFullYear(), 0, dayInFirstWeek),\n msPerDay = 24 * 60 * 60 * 1000,\n daysBetween = (date.getTime() - jan4th.getTime()) / msPerDay,\n weekNum = 1 + Math.round((daysBetween - dayShift + prevWeekDay(jan4th.getDay())) / daysPerWeek);\n\n return weekNum;\n },\n\n renderWeek = function (d, m, y, firstWeekOfYearMinDays) {\n var date = new Date(y, m, d),\n week = hasMoment ? moment(date).isoWeek() : isoWeek(date, firstWeekOfYearMinDays);\n\n return '' + week + ' ';\n },\n\n renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\n {\n return '' + (isRTL ? days.reverse() : days).join('') + ' ';\n },\n\n renderBody = function(rows)\n {\n return '' + rows.join('') + ' ';\n },\n\n renderHead = function(opts)\n {\n var i, arr = [];\n if (opts.showWeekNumber) {\n arr.push(' ');\n }\n for (i = 0; i < 7; i++) {\n arr.push('' + renderDayName(opts, i, true) + ' ');\n }\n return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ' ';\n },\n\n renderTitle = function(instance, c, year, month, refYear, randId)\n {\n var i, j, arr,\n opts = instance._o,\n isMinYear = year === opts.minYear,\n isMaxYear = year === opts.maxYear,\n html = '',\n monthHtml,\n yearHtml,\n prev = true,\n next = true;\n\n for (arr = [], i = 0; i < 12; i++) {\n arr.push('
opts.maxMonth) ? ' disabled=\"disabled\"' : '') + '>' +\n opts.i18n.months[i] + ' ');\n }\n\n monthHtml = '
' + opts.i18n.months[month] + '' + arr.join('') + '
';\n\n if (isArray(opts.yearRange)) {\n i = opts.yearRange[0];\n j = opts.yearRange[1] + 1;\n } else {\n i = year - opts.yearRange;\n j = 1 + year + opts.yearRange;\n }\n\n for (arr = []; i < j && i <= opts.maxYear; i++) {\n if (i >= opts.minYear) {\n arr.push('
' + (i) + ' ');\n }\n }\n yearHtml = '
' + year + opts.yearSuffix + '' + arr.join('') + '
';\n\n if (opts.showMonthAfterYear) {\n html += yearHtml + monthHtml;\n } else {\n html += monthHtml + yearHtml;\n }\n\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n prev = false;\n }\n\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n next = false;\n }\n\n if (c === 0) {\n html += '
' + opts.i18n.previousMonth + ' ';\n }\n if (c === (instance._o.numberOfMonths - 1) ) {\n html += '
' + opts.i18n.nextMonth + ' ';\n }\n\n return html += '
';\n },\n\n renderTable = function(opts, data, randId)\n {\n return '' + renderHead(opts) + renderBody(data) + '
';\n },\n\n\n /**\n * Pikaday constructor\n */\n Pikaday = function(options)\n {\n var self = this,\n opts = self.config(options);\n\n self._onMouseDown = function(e)\n {\n if (!self._v) {\n return;\n }\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n\n if (!hasClass(target, 'is-disabled')) {\n if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\n self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\n if (opts.bound) {\n sto(function() {\n self.hide();\n if (opts.blurFieldOnSelect && opts.field) {\n opts.field.blur();\n }\n }, 100);\n }\n }\n else if (hasClass(target, 'pika-prev')) {\n self.prevMonth();\n }\n else if (hasClass(target, 'pika-next')) {\n self.nextMonth();\n }\n }\n if (!hasClass(target, 'pika-select')) {\n // if this is touch event prevent mouse events emulation\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n return false;\n }\n } else {\n self._c = true;\n }\n };\n\n self._onChange = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n if (hasClass(target, 'pika-select-month')) {\n self.gotoMonth(target.value);\n }\n else if (hasClass(target, 'pika-select-year')) {\n self.gotoYear(target.value);\n }\n };\n\n self._onKeyChange = function(e)\n {\n e = e || window.event;\n\n if (self.isVisible()) {\n\n switch(e.keyCode){\n case 13:\n case 27:\n if (opts.field) {\n opts.field.blur();\n }\n break;\n case 37:\n self.adjustDate('subtract', 1);\n break;\n case 38:\n self.adjustDate('subtract', 7);\n break;\n case 39:\n self.adjustDate('add', 1);\n break;\n case 40:\n self.adjustDate('add', 7);\n break;\n case 8:\n case 46:\n self.setDate(null);\n break;\n }\n }\n };\n\n self._parseFieldValue = function()\n {\n if (opts.parse) {\n return opts.parse(opts.field.value, opts.format);\n } else if (hasMoment) {\n var date = moment(opts.field.value, opts.format, opts.formatStrict);\n return (date && date.isValid()) ? date.toDate() : null;\n } else {\n return new Date(Date.parse(opts.field.value));\n }\n };\n\n self._onInputChange = function(e)\n {\n var date;\n\n if (e.firedBy === self) {\n return;\n }\n date = self._parseFieldValue();\n if (isDate(date)) {\n self.setDate(date);\n }\n if (!self._v) {\n self.show();\n }\n };\n\n self._onInputFocus = function()\n {\n self.show();\n };\n\n self._onInputClick = function()\n {\n self.show();\n };\n\n self._onInputBlur = function()\n {\n // IE allows pika div to gain focus; catch blur the input field\n var pEl = document.activeElement;\n do {\n if (hasClass(pEl, 'pika-single')) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n\n if (!self._c) {\n self._b = sto(function() {\n self.hide();\n }, 50);\n }\n self._c = false;\n };\n\n self._onClick = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement,\n pEl = target;\n if (!target) {\n return;\n }\n if (!hasEventListeners && hasClass(target, 'pika-select')) {\n if (!target.onchange) {\n target.setAttribute('onchange', 'return;');\n addEvent(target, 'change', self._onChange);\n }\n }\n do {\n if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\n self.hide();\n }\n };\n\n self.el = document.createElement('div');\n self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\n\n addEvent(self.el, 'mousedown', self._onMouseDown, true);\n addEvent(self.el, 'touchend', self._onMouseDown, true);\n addEvent(self.el, 'change', self._onChange);\n\n if (opts.keyboardInput) {\n addEvent(document, 'keydown', self._onKeyChange);\n }\n\n if (opts.field) {\n if (opts.container) {\n opts.container.appendChild(self.el);\n } else if (opts.bound) {\n document.body.appendChild(self.el);\n } else {\n opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\n }\n addEvent(opts.field, 'change', self._onInputChange);\n\n if (!opts.defaultDate) {\n opts.defaultDate = self._parseFieldValue();\n opts.setDefaultDate = true;\n }\n }\n\n var defDate = opts.defaultDate;\n\n if (isDate(defDate)) {\n if (opts.setDefaultDate) {\n self.setDate(defDate, true);\n } else {\n self.gotoDate(defDate);\n }\n } else {\n self.gotoDate(new Date());\n }\n\n if (opts.bound) {\n this.hide();\n self.el.className += ' is-bound';\n addEvent(opts.trigger, 'click', self._onInputClick);\n addEvent(opts.trigger, 'focus', self._onInputFocus);\n addEvent(opts.trigger, 'blur', self._onInputBlur);\n } else {\n this.show();\n }\n };\n\n\n /**\n * public Pikaday API\n */\n Pikaday.prototype = {\n\n\n /**\n * configure functionality\n */\n config: function(options)\n {\n if (!this._o) {\n this._o = extend({}, defaults, true);\n }\n\n var opts = extend(this._o, options, true);\n\n opts.isRTL = !!opts.isRTL;\n\n opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\n\n opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\n\n opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\n\n opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\n\n opts.disableWeekends = !!opts.disableWeekends;\n\n opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\n\n var nom = parseInt(opts.numberOfMonths, 10) || 1;\n opts.numberOfMonths = nom > 4 ? 4 : nom;\n\n if (!isDate(opts.minDate)) {\n opts.minDate = false;\n }\n if (!isDate(opts.maxDate)) {\n opts.maxDate = false;\n }\n if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\n opts.maxDate = opts.minDate = false;\n }\n if (opts.minDate) {\n this.setMinDate(opts.minDate);\n }\n if (opts.maxDate) {\n this.setMaxDate(opts.maxDate);\n }\n\n if (isArray(opts.yearRange)) {\n var fallback = new Date().getFullYear() - 10;\n opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\n opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\n } else {\n opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\n if (opts.yearRange > 100) {\n opts.yearRange = 100;\n }\n }\n\n return opts;\n },\n\n /**\n * return a formatted string of the current selection (using Moment.js if available)\n */\n toString: function(format)\n {\n format = format || this._o.format;\n if (!isDate(this._d)) {\n return '';\n }\n if (this._o.toString) {\n return this._o.toString(this._d, format);\n }\n if (hasMoment) {\n return moment(this._d).format(format);\n }\n return this._d.toDateString();\n },\n\n /**\n * return a Moment.js object of the current selection (if available)\n */\n getMoment: function()\n {\n return hasMoment ? moment(this._d) : null;\n },\n\n /**\n * set the current selection from a Moment.js object (if available)\n */\n setMoment: function(date, preventOnSelect)\n {\n if (hasMoment && moment.isMoment(date)) {\n this.setDate(date.toDate(), preventOnSelect);\n }\n },\n\n /**\n * return a Date object of the current selection\n */\n getDate: function()\n {\n return isDate(this._d) ? new Date(this._d.getTime()) : null;\n },\n\n /**\n * set the current selection\n */\n setDate: function(date, preventOnSelect)\n {\n if (!date) {\n this._d = null;\n\n if (this._o.field) {\n this._o.field.value = '';\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n\n return this.draw();\n }\n if (typeof date === 'string') {\n date = new Date(Date.parse(date));\n }\n if (!isDate(date)) {\n return;\n }\n\n var min = this._o.minDate,\n max = this._o.maxDate;\n\n if (isDate(min) && date < min) {\n date = min;\n } else if (isDate(max) && date > max) {\n date = max;\n }\n\n this._d = new Date(date.getTime());\n setToStartOfDay(this._d);\n this.gotoDate(this._d);\n\n if (this._o.field) {\n this._o.field.value = this.toString();\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n if (!preventOnSelect && typeof this._o.onSelect === 'function') {\n this._o.onSelect.call(this, this.getDate());\n }\n },\n\n /**\n * clear and reset the date\n */\n clear: function()\n {\n this.setDate(null);\n },\n\n /**\n * change view to a specific date\n */\n gotoDate: function(date)\n {\n var newCalendar = true;\n\n if (!isDate(date)) {\n return;\n }\n\n if (this.calendars) {\n var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\n lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\n visibleDate = date.getTime();\n // get the end of the month\n lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\n lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\n newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\n }\n\n if (newCalendar) {\n this.calendars = [{\n month: date.getMonth(),\n year: date.getFullYear()\n }];\n if (this._o.mainCalendar === 'right') {\n this.calendars[0].month += 1 - this._o.numberOfMonths;\n }\n }\n\n this.adjustCalendars();\n },\n\n adjustDate: function(sign, days) {\n\n var day = this.getDate() || new Date();\n var difference = parseInt(days)*24*60*60*1000;\n\n var newDay;\n\n if (sign === 'add') {\n newDay = new Date(day.valueOf() + difference);\n } else if (sign === 'subtract') {\n newDay = new Date(day.valueOf() - difference);\n }\n\n this.setDate(newDay);\n },\n\n adjustCalendars: function() {\n this.calendars[0] = adjustCalendar(this.calendars[0]);\n for (var c = 1; c < this._o.numberOfMonths; c++) {\n this.calendars[c] = adjustCalendar({\n month: this.calendars[0].month + c,\n year: this.calendars[0].year\n });\n }\n this.draw();\n },\n\n gotoToday: function()\n {\n this.gotoDate(new Date());\n },\n\n /**\n * change view to a specific month (zero-index, e.g. 0: January)\n */\n gotoMonth: function(month)\n {\n if (!isNaN(month)) {\n this.calendars[0].month = parseInt(month, 10);\n this.adjustCalendars();\n }\n },\n\n nextMonth: function()\n {\n this.calendars[0].month++;\n this.adjustCalendars();\n },\n\n prevMonth: function()\n {\n this.calendars[0].month--;\n this.adjustCalendars();\n },\n\n /**\n * change view to a specific full year (e.g. \"2012\")\n */\n gotoYear: function(year)\n {\n if (!isNaN(year)) {\n this.calendars[0].year = parseInt(year, 10);\n this.adjustCalendars();\n }\n },\n\n /**\n * change the minDate\n */\n setMinDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.minDate = value;\n this._o.minYear = value.getFullYear();\n this._o.minMonth = value.getMonth();\n } else {\n this._o.minDate = defaults.minDate;\n this._o.minYear = defaults.minYear;\n this._o.minMonth = defaults.minMonth;\n this._o.startRange = defaults.startRange;\n }\n\n this.draw();\n },\n\n /**\n * change the maxDate\n */\n setMaxDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.maxDate = value;\n this._o.maxYear = value.getFullYear();\n this._o.maxMonth = value.getMonth();\n } else {\n this._o.maxDate = defaults.maxDate;\n this._o.maxYear = defaults.maxYear;\n this._o.maxMonth = defaults.maxMonth;\n this._o.endRange = defaults.endRange;\n }\n\n this.draw();\n },\n\n setStartRange: function(value)\n {\n this._o.startRange = value;\n },\n\n setEndRange: function(value)\n {\n this._o.endRange = value;\n },\n\n /**\n * refresh the HTML\n */\n draw: function(force)\n {\n if (!this._v && !force) {\n return;\n }\n var opts = this._o,\n minYear = opts.minYear,\n maxYear = opts.maxYear,\n minMonth = opts.minMonth,\n maxMonth = opts.maxMonth,\n html = '',\n randId;\n\n if (this._y <= minYear) {\n this._y = minYear;\n if (!isNaN(minMonth) && this._m < minMonth) {\n this._m = minMonth;\n }\n }\n if (this._y >= maxYear) {\n this._y = maxYear;\n if (!isNaN(maxMonth) && this._m > maxMonth) {\n this._m = maxMonth;\n }\n }\n\n for (var c = 0; c < opts.numberOfMonths; c++) {\n randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\n html += ' ' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
';\n }\n\n this.el.innerHTML = html;\n\n if (opts.bound) {\n if(opts.field.type !== 'hidden') {\n sto(function() {\n opts.trigger.focus();\n }, 1);\n }\n }\n\n if (typeof this._o.onDraw === 'function') {\n this._o.onDraw(this);\n }\n\n if (opts.bound) {\n // let the screen reader user know to use arrow keys\n opts.field.setAttribute('aria-label', opts.ariaLabel);\n }\n },\n\n adjustPosition: function()\n {\n var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned;\n\n if (this._o.container) return;\n\n this.el.style.position = 'absolute';\n\n field = this._o.trigger;\n pEl = field;\n width = this.el.offsetWidth;\n height = this.el.offsetHeight;\n viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n leftAligned = true;\n bottomAligned = true;\n\n if (typeof field.getBoundingClientRect === 'function') {\n clientRect = field.getBoundingClientRect();\n left = clientRect.left + window.pageXOffset;\n top = clientRect.bottom + window.pageYOffset;\n } else {\n left = pEl.offsetLeft;\n top = pEl.offsetTop + pEl.offsetHeight;\n while((pEl = pEl.offsetParent)) {\n left += pEl.offsetLeft;\n top += pEl.offsetTop;\n }\n }\n\n // default position is bottom & left\n if ((this._o.reposition && left + width > viewportWidth) ||\n (\n this._o.position.indexOf('right') > -1 &&\n left - width + field.offsetWidth > 0\n )\n ) {\n left = left - width + field.offsetWidth;\n leftAligned = false;\n }\n if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\n (\n this._o.position.indexOf('top') > -1 &&\n top - height - field.offsetHeight > 0\n )\n ) {\n top = top - height - field.offsetHeight;\n bottomAligned = false;\n }\n\n this.el.style.left = left + 'px';\n this.el.style.top = top + 'px';\n\n addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned');\n addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned');\n removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned');\n removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned');\n },\n\n /**\n * render HTML for a particular month\n */\n render: function(year, month, randId)\n {\n var opts = this._o,\n now = new Date(),\n days = getDaysInMonth(year, month),\n before = new Date(year, month, 1).getDay(),\n data = [],\n row = [];\n setToStartOfDay(now);\n if (opts.firstDay > 0) {\n before -= opts.firstDay;\n if (before < 0) {\n before += 7;\n }\n }\n var previousMonth = month === 0 ? 11 : month - 1,\n nextMonth = month === 11 ? 0 : month + 1,\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\n yearOfNextMonth = month === 11 ? year + 1 : year,\n daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\n var cells = days + before,\n after = cells;\n while(after > 7) {\n after -= 7;\n }\n cells += 7 - after;\n var isWeekSelected = false;\n for (var i = 0, r = 0; i < cells; i++)\n {\n var day = new Date(year, month, 1 + (i - before)),\n isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\n isToday = compareDates(day, now),\n hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\n isEmpty = i < before || i >= (days + before),\n dayNumber = 1 + (i - before),\n monthNumber = month,\n yearNumber = year,\n isStartRange = opts.startRange && compareDates(opts.startRange, day),\n isEndRange = opts.endRange && compareDates(opts.endRange, day),\n isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\n isDisabled = (opts.minDate && day < opts.minDate) ||\n (opts.maxDate && day > opts.maxDate) ||\n (opts.disableWeekends && isWeekend(day)) ||\n (opts.disableDayFn && opts.disableDayFn(day));\n\n if (isEmpty) {\n if (i < before) {\n dayNumber = daysInPreviousMonth + dayNumber;\n monthNumber = previousMonth;\n yearNumber = yearOfPreviousMonth;\n } else {\n dayNumber = dayNumber - days;\n monthNumber = nextMonth;\n yearNumber = yearOfNextMonth;\n }\n }\n\n var dayConfig = {\n day: dayNumber,\n month: monthNumber,\n year: yearNumber,\n hasEvent: hasEvent,\n isSelected: isSelected,\n isToday: isToday,\n isDisabled: isDisabled,\n isEmpty: isEmpty,\n isStartRange: isStartRange,\n isEndRange: isEndRange,\n isInRange: isInRange,\n showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\n enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\n };\n\n if (opts.pickWholeWeek && isSelected) {\n isWeekSelected = true;\n }\n\n row.push(renderDay(dayConfig));\n\n if (++r === 7) {\n if (opts.showWeekNumber) {\n row.unshift(renderWeek(i - before, month, year, opts.firstWeekOfYearMinDays));\n }\n data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\n row = [];\n r = 0;\n isWeekSelected = false;\n }\n }\n return renderTable(opts, data, randId);\n },\n\n isVisible: function()\n {\n return this._v;\n },\n\n show: function()\n {\n if (!this.isVisible()) {\n this._v = true;\n this.draw();\n removeClass(this.el, 'is-hidden');\n if (this._o.bound) {\n addEvent(document, 'click', this._onClick);\n this.adjustPosition();\n }\n if (typeof this._o.onOpen === 'function') {\n this._o.onOpen.call(this);\n }\n }\n },\n\n hide: function()\n {\n var v = this._v;\n if (v !== false) {\n if (this._o.bound) {\n removeEvent(document, 'click', this._onClick);\n }\n\n if (!this._o.container) {\n this.el.style.position = 'static'; // reset\n this.el.style.left = 'auto';\n this.el.style.top = 'auto';\n }\n addClass(this.el, 'is-hidden');\n this._v = false;\n if (v !== undefined && typeof this._o.onClose === 'function') {\n this._o.onClose.call(this);\n }\n }\n },\n\n /**\n * GAME OVER\n */\n destroy: function()\n {\n var opts = this._o;\n\n this.hide();\n removeEvent(this.el, 'mousedown', this._onMouseDown, true);\n removeEvent(this.el, 'touchend', this._onMouseDown, true);\n removeEvent(this.el, 'change', this._onChange);\n if (opts.keyboardInput) {\n removeEvent(document, 'keydown', this._onKeyChange);\n }\n if (opts.field) {\n removeEvent(opts.field, 'change', this._onInputChange);\n if (opts.bound) {\n removeEvent(opts.trigger, 'click', this._onInputClick);\n removeEvent(opts.trigger, 'focus', this._onInputFocus);\n removeEvent(opts.trigger, 'blur', this._onInputBlur);\n }\n }\n if (this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n }\n }\n\n };\n\n return Pikaday;\n}));\n","import Pikaday from 'pikaday'\n\n// Phoenix html copied here since I ran into extensive issues trying to import\n// from the dep.\n;(function () {\n function buildHiddenInput (name, value) {\n const input = document.createElement('input')\n input.type = 'hidden'\n input.name = name\n input.value = value\n return input\n }\n\n function handleLinkClick (link) {\n var message = link.getAttribute('data-confirm')\n if (message && !window.confirm(message)) {\n return\n }\n\n const method = buildHiddenInput('_method', link.getAttribute('data-method'))\n const csrf = buildHiddenInput('_csrf_token', link.getAttribute('data-csrf'))\n const form = document.createElement('form')\n\n form.method = (link.getAttribute('data-method') === 'get') ? 'get' : 'post'\n form.action = link.getAttribute('data-to')\n form.style.display = 'hidden'\n\n form.appendChild(csrf)\n form.appendChild(method)\n document.body.appendChild(form)\n form.submit()\n }\n\n window.addEventListener('click', function (e) {\n var element = e.target\n\n while (element && element.getAttribute) {\n if (element.getAttribute('data-method')) {\n handleLinkClick(element)\n e.preventDefault()\n return false\n } else {\n element = element.parentNode\n }\n }\n }, false)\n})()\n\nwindow.onload = () => {\n const slice = Array.prototype.slice\n\n /*\n * Set active nav link\n */\n slice.call(document.querySelectorAll('.torch-nav a'), 0).forEach((field) => {\n const url = window.location.href\n const linkTarget = field.getAttribute('href')\n const regex = RegExp(linkTarget)\n\n if (regex.test(url)) {\n field.classList.add('active')\n }\n })\n\n /*\n * Flash Messages\n */\n slice.call(document.querySelectorAll('button.torch-flash-close'), 0).forEach((button) => {\n button.addEventListener('click', function () {\n const flashMessage = button.closest('.torch-flash')\n flashMessage.parentNode.removeChild(flashMessage)\n })\n })\n\n /*\n * Prevent empty fields from being submitted, since this breaks Filtrex.\n */\n const formFilters = document.querySelector('form#torch-filters-form')\n if (!formFilters) return\n\n formFilters.addEventListener('submit', function (e) {\n e.preventDefault()\n\n let canSubmit = true\n\n slice.call(this.querySelectorAll('.field'), 0).forEach((field) => {\n const text = field.getElementsByTagName('label')[0].textContent\n const start = field.getElementsByClassName('start')[0]\n const end = field.getElementsByClassName('end')[0]\n\n if (start && end) {\n if (start.value === '' && end.value !== '') {\n window.alert(`Please select a start date for the ${text} field`)\n canSubmit = false\n } else if (end.value === '' && start.value !== '') {\n window.alert(`Please select an end at date for the ${text} field`)\n canSubmit = false\n }\n }\n })\n\n if (canSubmit) {\n slice.call(this.querySelectorAll('input, select'), 0).forEach((field) => {\n if (field.value === '') {\n field.disabled = true\n }\n })\n\n e.target.submit()\n }\n })\n\n slice.call(document.querySelectorAll('select.filter-type'), 0).forEach((field) => {\n field.addEventListener('change', (e) => {\n e.target.nextElementSibling.name = e.target.value\n })\n })\n\n const formatDate = date =>\n date\n .toLocaleString('en-us', { year: 'numeric', month: '2-digit', day: '2-digit' })\n .replace(/(\\d+)\\/(\\d+)\\/(\\d+)/, '$3-$1-$2')\n\n const parseDate = (dateString) => {\n const dateParts = dateString.split('-')\n if (dateParts.length === 3) {\n return new Date(dateParts[0], dateParts[1] - 1, dateParts[2])\n }\n }\n\n /* eslint-disable no-new */\n slice.call(document.querySelectorAll('.datepicker'), 0).forEach((field) => {\n const defaultDate = parseDate(field.value) || new Date()\n\n new Pikaday({\n field: field,\n toString: date => formatDate(date),\n onSelect: date => (field.value = formatDate(date)),\n defaultDate: defaultDate,\n parse: parseDate,\n theme: 'torch-datepicker'\n })\n })\n /* eslint-enable no-new */\n\n slice.call(document.querySelectorAll('.torch-flash-close'), 0).forEach((field) => {\n field.addEventListener('click', function (e) {\n let el = field\n const selector = 'torch-flash'\n while ((el = el.parentElement) && !((el.matches || el.matchesSelector).call(el, selector))) { el.parentNode.removeChild(el) }\n })\n })\n}\n"],"names":["root","factory","moment","$d2b378008f565d8d$import$a2cb963221bbaab7","e1","$d2b378008f565d8d$exports","hasMoment","hasEventListeners","window","addEventListener","document","sto","setTimeout","addEvent","el","e","callback","capture","attachEvent","removeEvent","removeEventListener","detachEvent","trim","str","replace","hasClass","cn","className","indexOf","addClass","removeClass","isArray","obj","test","Object","prototype","toString","call","isDate","isNaN","getTime","isWeekend","date","day","getDay","isLeapYear","year","getDaysInMonth","month","setToStartOfDay","setHours","compareDates","a","b","extend","to","from","overwrite","prop","hasProp","undefined","nodeName","Date","slice","fireEvent","eventName","data","ev","createEvent","initEvent","dispatchEvent","createEventObject","adjustCalendar","calendar","Math","ceil","abs","floor","defaults","field","bound","ariaLabel","position","reposition","format","parse","defaultDate","setDefaultDate","firstDay","firstWeekOfYearMinDays","formatStrict","minDate","maxDate","yearRange","showWeekNumber","pickWholeWeek","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","yearSuffix","showMonthAfterYear","showDaysInNextAndPreviousMonths","enableSelectionDaysInNextAndPreviousMonths","numberOfMonths","mainCalendar","container","blurFieldOnSelect","i18n","previousMonth","nextMonth","months","weekdays","weekdaysShort","theme","events","onSelect","onOpen","onClose","onDraw","keyboardInput","renderDayName","opts","abbr","renderDay","arr","ariaSelected","isEmpty","push","isDisabled","isToday","isSelected","hasEvent","isInRange","isStartRange","isEndRange","join","isoWeek","yearDay","getDate","weekDay","dayInFirstWeek","dayShift","daysPerWeek","prevWeekDay","setDate","jan4th","getFullYear","msPerDay","daysBetween","round","renderWeek","d","m","y","renderRow","days","isRowSelected","reverse","renderBody","rows","renderHead","i","renderTitle","instance","c","refYear","randId","j","monthHtml","yearHtml","_o","isMinYear","isMaxYear","html","prev","next","renderTable","Pikaday","options","self","this","config","_onMouseDown","_v","target","event","srcElement","parentNode","prevMonth","getAttribute","hide","blur","_c","preventDefault","returnValue","_onChange","gotoMonth","value","gotoYear","_onKeyChange","isVisible","keyCode","adjustDate","_parseFieldValue","isValid","toDate","_onInputChange","firedBy","show","_onInputFocus","_onInputClick","_onInputBlur","pEl","activeElement","_b","_onClick","onchange","setAttribute","trigger","createElement","appendChild","body","insertBefore","nextSibling","defDate","gotoDate","disableWeekends","disableDayFn","nom","parseInt","setMinDate","setMaxDate","fallback","_d","toDateString","getMoment","setMoment","preventOnSelect","isMoment","draw","min","max","clear","newCalendar","calendars","firstVisibleDate","lastVisibleDate","length","visibleDate","setMonth","getMonth","adjustCalendars","sign","newDay","difference","valueOf","gotoToday","setStartRange","setEndRange","force","_y","_m","random","substr","render","innerHTML","type","focus","adjustPosition","width","height","viewportWidth","viewportHeight","scrollTop","left","top","clientRect","leftAligned","bottomAligned","style","offsetWidth","offsetHeight","innerWidth","documentElement","clientWidth","innerHeight","clientHeight","pageYOffset","getBoundingClientRect","pageXOffset","bottom","offsetLeft","offsetTop","offsetParent","now","before","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","after","isWeekSelected","r","dayNumber","monthNumber","yearNumber","dayConfig","unshift","v","destroy","removeChild","buildHiddenInput","name","input","handleLinkClick","link","message","confirm","method","csrf","form","action","display","submit","element","onload","Array","querySelectorAll","forEach","url","location","href","linkTarget","RegExp","classList","add","button","flashMessage","closest","formFilters","querySelector","canSubmit","text","getElementsByTagName","textContent","start","getElementsByClassName","end","alert","disabled","nextElementSibling","formatDate","toLocaleString","parseDate","dateString","dateParts","split","$parcel$interopDefault","parentElement","matches","matchesSelector"],"version":3,"file":"torch.js.map"}
\ No newline at end of file
+{"mappings":";;;;;IAMC,SAAUA,EAAMC,GAIb,IAAIC,EAIA,IAAMA,EAASC,0CAAqB,MAAOC,IAC3CC,EAaA,SAAUH,GAEd,aAKA,IAAII,EAA8B,mBAAXJ,EAEvBK,IAAsBC,OAAOC,iBAE7BC,EAAWF,OAAOE,SAElBC,EAAMH,OAAOI,WAEbC,EAAW,SAASC,EAAIC,EAAGC,EAAUC,GAE7BV,EACAO,EAAGL,iBAAiBM,EAAGC,IAAYC,GAEnCH,EAAGI,YAAY,KAAOH,EAAGC,IAIjCG,EAAc,SAASL,EAAIC,EAAGC,EAAUC,GAEhCV,EACAO,EAAGM,oBAAoBL,EAAGC,IAAYC,GAEtCH,EAAGO,YAAY,KAAON,EAAGC,IAIjCM,EAAO,SAASC,GAEZ,OAAOA,EAAID,KAAOC,EAAID,OAASC,EAAIC,QAAO,aAAc,KAG5DC,EAAW,SAASX,EAAIY,GAEpB,OAA8D,KAAtD,IAAMZ,EAAGa,UAAY,KAAKC,QAAQ,IAAMF,EAAK,MAGzDG,EAAW,SAASf,EAAIY,GAEfD,EAASX,EAAIY,KACdZ,EAAGa,UAA8B,KAAjBb,EAAGa,UAAoBD,EAAKZ,EAAGa,UAAY,IAAMD,IAIzEI,EAAc,SAAShB,EAAIY,GAEvBZ,EAAGa,UAAYL,GAAM,IAAMR,EAAGa,UAAY,KAAKH,QAAQ,IAAME,EAAK,IAAK,OAG3EK,EAAU,SAASC,GAEf,MAAO,QAAUC,KAAKC,OAAOC,UAAUC,SAASC,KAAKL,KAGzDM,EAAS,SAASN,GAEd,MAAO,OAASC,KAAKC,OAAOC,UAAUC,SAASC,KAAKL,MAAUO,MAAMP,EAAIQ,YAG5EC,EAAY,SAASC,GAEjB,IAAIC,EAAMD,EAAKE,SACf,OAAe,IAARD,GAAqB,IAARA,GAGxBE,EAAa,SAASC,GAGlB,OAASA,EAAO,GAAM,GAAKA,EAAO,KAAQ,GAAMA,EAAO,KAAQ,GAGnEC,EAAiB,SAASD,EAAME,GAE5B,MAAO,CAAC,GAAIH,EAAWC,GAAQ,GAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAIE,IAGpFC,EAAkB,SAASP,GAEnBJ,EAAOI,IAAOA,EAAKQ,SAAS,EAAE,EAAE,EAAE,IAG1CC,EAAe,SAASC,EAAEC,GAGtB,OAAOD,EAAEZ,YAAca,EAAEb,WAG7Bc,EAAS,SAASC,EAAIC,EAAMC,GAExB,IAAIC,EAAMC,EACV,IAAKD,KAAQF,GACTG,OAAuBC,IAAbL,EAAGG,KACwB,iBAAfF,EAAKE,IAAqC,OAAfF,EAAKE,SAA0CE,IAAxBJ,EAAKE,GAAMG,SAC3EvB,EAAOkB,EAAKE,IACRD,IACAF,EAAGG,GAAQ,IAAII,KAAKN,EAAKE,GAAMlB,YAG9BT,EAAQyB,EAAKE,IACdD,IACAF,EAAGG,GAAQF,EAAKE,GAAMK,MAAM,IAGhCR,EAAGG,GAAQJ,EAAO,GAAIE,EAAKE,GAAOD,IAE/BA,GAAcE,IACrBJ,EAAGG,GAAQF,EAAKE,IAGxB,OAAOH,GAGXS,EAAY,SAASlD,EAAImD,EAAWC,GAEhC,IAAIC,EAEAzD,EAAS0D,cACTD,EAAKzD,EAAS0D,YAAY,eACvBC,UAAUJ,GAAW,GAAM,GAC9BE,EAAKb,EAAOa,EAAID,GAChBpD,EAAGwD,cAAcH,IACVzD,EAAS6D,oBAChBJ,EAAKzD,EAAS6D,oBACdJ,EAAKb,EAAOa,EAAID,GAChBpD,EAAGkD,UAAU,KAAOC,EAAWE,KAIvCK,EAAiB,SAASC,GAStB,OARIA,EAASzB,MAAQ,IACjByB,EAAS3B,MAAQ4B,KAAKC,KAAKD,KAAKE,IAAIH,EAASzB,OAAO,IACpDyB,EAASzB,OAAS,IAElByB,EAASzB,MAAQ,KACjByB,EAAS3B,MAAQ4B,KAAKG,MAAMH,KAAKE,IAAIH,EAASzB,OAAO,IACrDyB,EAASzB,OAAS,IAEfyB,GAMXK,EAAW,CAGPC,MAAO,KAGPC,WAAOpB,EAGPqB,UAAW,oCAIXC,SAAU,cAGVC,YAAY,EAGZC,OAAQ,aAIRhD,SAAU,KAGViD,MAAO,KAGPC,YAAa,KAGbC,gBAAgB,EAGhBC,SAAU,EAIVC,uBAAwB,EAGxBC,cAAc,EAGdC,QAAS,KAETC,QAAS,KAGTC,UAAW,GAGXC,gBAAgB,EAGhBC,eAAe,EAGfC,QAAS,EACTC,QAAS,KACTC,cAAUtC,EACVuC,cAAUvC,EAEVwC,WAAY,KACZC,SAAU,KAEVC,OAAO,EAGPC,WAAY,GAGZC,oBAAoB,EAGpBC,iCAAiC,EAGjCC,4CAA4C,EAG5CC,eAAgB,EAIhBC,aAAc,OAGdC,eAAWjD,EAGXkD,mBAAoB,EAGpBC,KAAM,CACFC,cAAgB,iBAChBC,UAAgB,aAChBC,OAAgB,CAAC,UAAU,WAAW,QAAQ,QAAQ,MAAM,OAAO,OAAO,SAAS,YAAY,UAAU,WAAW,YACpHC,SAAgB,CAAC,SAAS,SAAS,UAAU,YAAY,WAAW,SAAS,YAC7EC,cAAgB,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,QAIzDC,MAAO,KAGPC,OAAQ,GAGRC,SAAU,KACVC,OAAQ,KACRC,QAAS,KACTC,OAAQ,KAGRC,eAAe,GAOnBC,EAAgB,SAASC,EAAMlF,EAAKmF,GAGhC,IADAnF,GAAOkF,EAAKrC,SACL7C,GAAO,GACVA,GAAO,EAEX,OAAOmF,EAAOD,EAAKd,KAAKK,cAAczE,GAAOkF,EAAKd,KAAKI,SAASxE,IAGpEoF,EAAY,SAASF,GAEjB,IAAIG,EAAM,GACNC,EAAe,QACnB,GAAIJ,EAAKK,QAAS,CACd,IAAIL,EAAKpB,gCAQL,MAAO,6BAPPuB,EAAIG,KAAK,4BAELN,EAAKnB,4CACLsB,EAAIG,KAAK,yBA6BrB,OAtBIN,EAAKO,YACLJ,EAAIG,KAAK,eAETN,EAAKQ,SACLL,EAAIG,KAAK,YAETN,EAAKS,aACLN,EAAIG,KAAK,eACTF,EAAe,QAEfJ,EAAKU,UACLP,EAAIG,KAAK,aAETN,EAAKW,WACLR,EAAIG,KAAK,cAETN,EAAKY,cACLT,EAAIG,KAAK,iBAETN,EAAKa,YACLV,EAAIG,KAAK,eAEN,iBAAmBN,EAAKlF,IAAM,YAAcqF,EAAIW,KAAK,KAAO,oBAAsBV,EAAlF,wEAE0BJ,EAAK/E,KAAO,sBAAwB+E,EAAK7E,MAAQ,oBAAsB6E,EAAKlF,IAAM,KACnGkF,EAAKlF,IAHd,kBAQXiG,EAAU,SAASlG,EAAM+C,GAErB/C,EAAKQ,SAAS,EAAG,EAAG,EAAG,GAIvB,IAAI2F,EAAiBnG,EAAKoG,UACtBC,EAAiBrG,EAAKE,SACtBoG,EAAiBvD,EACjBwD,EAAiBD,EAAiB,EAClCE,EAAiB,EACjBC,EAAiB,SAASxG,GAAO,OAAQA,EAAMuG,EAAc,GAAKA,GAGtExG,EAAK0G,QAAQP,EAAUI,EAAWE,EAAYJ,IAE9C,IAAIM,EAAc,IAAIvF,KAAKpB,EAAK4G,cAAe,EAAGN,GAC9CO,EAAc,MACdC,GAAe9G,EAAKF,UAAY6G,EAAO7G,WAAa+G,EAGxD,OAFkB,EAAI7E,KAAK+E,OAAOD,EAAcP,EAAWE,EAAYE,EAAOzG,WAAasG,IAK/FQ,EAAa,SAAUC,EAAGC,EAAGC,EAAGpE,GAC5B,IAAI/C,EAAO,IAAIoB,KAAK+F,EAAGD,EAAGD,GAG1B,MAAO,0BAFIrJ,EAAYJ,EAAOwC,GAAMkG,UAAYA,EAAQlG,EAAM+C,IAErB,SAG7CqE,EAAY,SAASC,EAAMzD,EAAOP,EAAeiE,GAE7C,MAAO,uBAAyBjE,EAAgB,mBAAqB,KAAOiE,EAAgB,eAAiB,IAAM,MAAQ1D,EAAQyD,EAAKE,UAAYF,GAAMpB,KAAK,IAAM,SAGzKuB,EAAa,SAASC,GAElB,MAAO,UAAYA,EAAKxB,KAAK,IAAM,YAGvCyB,EAAa,SAASvC,GAElB,IAAIwC,EAAGrC,EAAM,GAIb,IAHIH,EAAK/B,gBACLkC,EAAIG,KAAK,aAERkC,EAAI,EAAGA,EAAI,EAAGA,IACfrC,EAAIG,KAAK,gCAAkCP,EAAcC,EAAMwC,GAAK,KAAOzC,EAAcC,EAAMwC,GAAG,GAAQ,gBAE9G,MAAO,eAAiBxC,EAAKvB,MAAQ0B,EAAIiC,UAAYjC,GAAKW,KAAK,IAAM,iBAGzE2B,EAAc,SAASC,EAAUC,EAAG1H,EAAME,EAAOyH,EAASC,GAEtD,IAAIL,EAAGM,EAAG3C,EAKN4C,EACAC,EALAhD,EAAO0C,EAASO,GAChBC,EAAYjI,IAAS+E,EAAK7B,QAC1BgF,EAAYlI,IAAS+E,EAAK5B,QAC1BgF,EAAO,YAAcP,EAAS,6DAG9BQ,GAAO,EACPC,GAAO,EAEX,IAAKnD,EAAM,GAAIqC,EAAI,EAAGA,EAAI,GAAIA,IAC1BrC,EAAIG,KAAK,mBAAqBrF,IAAS2H,EAAUJ,EAAIG,EAAI,GAAKH,EAAIG,GAAK,KAClEH,IAAMrH,EAAQ,uBAAwB,KACrC+H,GAAaV,EAAIxC,EAAK3B,UAAc8E,GAAaX,EAAIxC,EAAK1B,SAAY,uBAAyB,IAAM,IACvG0B,EAAKd,KAAKG,OAAOmD,GAAK,aAa9B,IAVAO,EAAY,2BAA6B/C,EAAKd,KAAKG,OAAOlE,GAAS,+DAAiEgF,EAAIW,KAAK,IAAM,kBAE/I5G,EAAQ8F,EAAKhC,YACbwE,EAAIxC,EAAKhC,UAAU,GACnB8E,EAAI9C,EAAKhC,UAAU,GAAK,IAExBwE,EAAIvH,EAAO+E,EAAKhC,UAChB8E,EAAI,EAAI7H,EAAO+E,EAAKhC,WAGnBmC,EAAM,GAAIqC,EAAIM,GAAKN,GAAKxC,EAAK5B,QAASoE,IACnCA,GAAKxC,EAAK7B,SACVgC,EAAIG,KAAK,kBAAoBkC,EAAI,KAAOA,IAAMvH,EAAO,uBAAwB,IAAM,IAAOuH,EAAK,aA0BvG,OAvBAQ,EAAW,2BAA6B/H,EAAO+E,EAAKtB,WAAa,8DAAgEyB,EAAIW,KAAK,IAAM,kBAE5Id,EAAKrB,mBACLyE,GAAQJ,EAAWD,EAEnBK,GAAQL,EAAYC,EAGpBE,IAAwB,IAAV/H,GAAe6E,EAAK3B,UAAYlD,KAC9CkI,GAAO,GAGPF,IAAwB,KAAVhI,GAAgB6E,EAAK1B,UAAYnD,KAC/CmI,GAAO,GAGD,IAANX,IACAS,GAAQ,4BAA8BC,EAAO,GAAK,gBAAkB,mBAAqBrD,EAAKd,KAAKC,cAAgB,aAEnHwD,IAAOD,EAASO,GAAGnE,eAAiB,IACpCsE,GAAQ,4BAA8BE,EAAO,GAAK,gBAAkB,mBAAqBtD,EAAKd,KAAKE,UAAY,aAG5GgE,EAAQ,UAGnBG,EAAc,SAASvD,EAAM3D,EAAMwG,GAE/B,MAAO,0FAA4FA,EAAS,KAAON,EAAWvC,GAAQqC,EAAWhG,GAAQ,YAO7JmH,EAAU,SAASC,GAEf,IAAIC,EAAOC,KACP3D,EAAO0D,EAAKE,OAAOH,GAEvBC,EAAKG,aAAe,SAAS3K,GAEzB,GAAKwK,EAAKI,GAAV,CAIA,IAAIC,GADJ7K,EAAIA,GAAKP,OAAOqL,OACDD,QAAU7K,EAAE+K,WAC3B,GAAKF,EAuBL,GAnBKnK,EAASmK,EAAQ,kBACdnK,EAASmK,EAAQ,gBAAmBnK,EAASmK,EAAQ,aAAgBnK,EAASmK,EAAOG,WAAY,eAW5FtK,EAASmK,EAAQ,aACtBL,EAAKS,YAEAvK,EAASmK,EAAQ,cACtBL,EAAKtE,aAdLsE,EAAKnC,QAAQ,IAAItF,KAAK8H,EAAOK,aAAa,kBAAmBL,EAAOK,aAAa,mBAAoBL,EAAOK,aAAa,mBACrHpE,EAAK7C,OACLrE,GAAI,WACA4K,EAAKW,OACDrE,EAAKf,mBAAqBe,EAAK9C,OAC/B8C,EAAK9C,MAAMoH,SAEhB,OAUV1K,EAASmK,EAAQ,eASlBL,EAAKa,IAAK,MATsB,CAEhC,IAAIrL,EAAEsL,eAIF,OADAtL,EAAEuL,aAAc,GACT,EAHPvL,EAAEsL,oBAUdd,EAAKgB,UAAY,SAASxL,GAGtB,IAAI6K,GADJ7K,EAAIA,GAAKP,OAAOqL,OACDD,QAAU7K,EAAE+K,WACtBF,IAGDnK,EAASmK,EAAQ,qBACjBL,EAAKiB,UAAUZ,EAAOa,OAEjBhL,EAASmK,EAAQ,qBACtBL,EAAKmB,SAASd,EAAOa,SAI7BlB,EAAKoB,aAAe,SAAS5L,GAIzB,GAFAA,EAAIA,GAAKP,OAAOqL,MAEZN,EAAKqB,YAEL,OAAO7L,EAAE8L,SACL,KAAK,GACL,KAAK,GACGhF,EAAK9C,OACL8C,EAAK9C,MAAMoH,OAEf,MACJ,KAAK,GACDZ,EAAKuB,WAAW,WAAY,GAC5B,MACJ,KAAK,GACDvB,EAAKuB,WAAW,WAAY,GAC5B,MACJ,KAAK,GACDvB,EAAKuB,WAAW,MAAO,GACvB,MACJ,KAAK,GACDvB,EAAKuB,WAAW,MAAO,GACvB,MACJ,KAAK,EACL,KAAK,GACDvB,EAAKnC,QAAQ,QAM7BmC,EAAKwB,iBAAmB,WAEpB,GAAIlF,EAAKxC,MACL,OAAOwC,EAAKxC,MAAMwC,EAAK9C,MAAM0H,MAAO5E,EAAKzC,QACtC,GAAI9E,EAAW,CAClB,IAAIoC,EAAOxC,EAAO2H,EAAK9C,MAAM0H,MAAO5E,EAAKzC,OAAQyC,EAAKnC,cACtD,OAAQhD,GAAQA,EAAKsK,UAAatK,EAAKuK,SAAW,KAElD,OAAO,IAAInJ,KAAKA,KAAKuB,MAAMwC,EAAK9C,MAAM0H,SAI9ClB,EAAK2B,eAAiB,SAASnM,GAE3B,IAAI2B,EAEA3B,EAAEoM,UAAY5B,IAGlB7I,EAAO6I,EAAKwB,mBACRzK,EAAOI,IACT6I,EAAKnC,QAAQ1G,GAEV6I,EAAKI,IACNJ,EAAK6B,SAIb7B,EAAK8B,cAAgB,WAEjB9B,EAAK6B,QAGT7B,EAAK+B,cAAgB,WAEjB/B,EAAK6B,QAGT7B,EAAKgC,aAAe,WAGhB,IAAIC,EAAM9M,EAAS+M,cACnB,GACI,GAAIhM,EAAS+L,EAAK,eACd,aAGAA,EAAMA,EAAIzB,YAEbR,EAAKa,KACNb,EAAKmC,GAAK/M,GAAI,WACV4K,EAAKW,SACN,KAEPX,EAAKa,IAAK,GAGdb,EAAKoC,SAAW,SAAS5M,GAGrB,IAAI6K,GADJ7K,EAAIA,GAAKP,OAAOqL,OACDD,QAAU7K,EAAE+K,WACvB0B,EAAM5B,EACV,GAAKA,EAAL,EAGKrL,GAAqBkB,EAASmK,EAAQ,iBAClCA,EAAOgC,WACRhC,EAAOiC,aAAa,WAAY,WAChChN,EAAS+K,EAAQ,SAAUL,EAAKgB,aAGxC,GACI,GAAI9K,EAAS+L,EAAK,gBAAkBA,IAAQ3F,EAAKiG,QAC7C,aAGAN,EAAMA,EAAIzB,YACdR,EAAKI,IAAMC,IAAW/D,EAAKiG,SAAWN,IAAQ3F,EAAKiG,SACnDvC,EAAKW,SAIbX,EAAKzK,GAAKJ,EAASqN,cAAc,OACjCxC,EAAKzK,GAAGa,UAAY,eAAiBkG,EAAKvB,MAAQ,UAAY,KAAOuB,EAAKR,MAAQ,IAAMQ,EAAKR,MAAQ,IAErGxG,EAAS0K,EAAKzK,GAAI,YAAayK,EAAKG,cAAc,GAClD7K,EAAS0K,EAAKzK,GAAI,WAAYyK,EAAKG,cAAc,GACjD7K,EAAS0K,EAAKzK,GAAI,SAAUyK,EAAKgB,WAE7B1E,EAAKF,eACL9G,EAASH,EAAU,UAAW6K,EAAKoB,cAGnC9E,EAAK9C,QACD8C,EAAKhB,UACLgB,EAAKhB,UAAUmH,YAAYzC,EAAKzK,IACzB+G,EAAK7C,MACZtE,EAASuN,KAAKD,YAAYzC,EAAKzK,IAE/B+G,EAAK9C,MAAMgH,WAAWmC,aAAa3C,EAAKzK,GAAI+G,EAAK9C,MAAMoJ,aAE3DtN,EAASgH,EAAK9C,MAAO,SAAUwG,EAAK2B,gBAE/BrF,EAAKvC,cACNuC,EAAKvC,YAAciG,EAAKwB,mBACxBlF,EAAKtC,gBAAiB,IAI9B,IAAI6I,EAAUvG,EAAKvC,YAEfhD,EAAO8L,GACHvG,EAAKtC,eACLgG,EAAKnC,QAAQgF,GAAS,GAEtB7C,EAAK8C,SAASD,GAGlB7C,EAAK8C,SAAS,IAAIvK,MAGlB+D,EAAK7C,OACLwG,KAAKU,OACLX,EAAKzK,GAAGa,WAAa,YACrBd,EAASgH,EAAKiG,QAAS,QAASvC,EAAK+B,eACrCzM,EAASgH,EAAKiG,QAAS,QAASvC,EAAK8B,eACrCxM,EAASgH,EAAKiG,QAAS,OAAQvC,EAAKgC,eAEpC/B,KAAK4B,QAmlBb,OA3kBA/B,EAAQlJ,UAAY,CAMhBsJ,OAAQ,SAASH,GAERE,KAAKV,KACNU,KAAKV,GAAKxH,EAAO,GAAIwB,GAAU,IAGnC,IAAI+C,EAAOvE,EAAOkI,KAAKV,GAAIQ,GAAS,GAEpCzD,EAAKvB,QAAUuB,EAAKvB,MAEpBuB,EAAK9C,MAAS8C,EAAK9C,OAAS8C,EAAK9C,MAAMlB,SAAYgE,EAAK9C,MAAQ,KAEhE8C,EAAKR,MAAgC,iBAAhBQ,EAAKR,OAAuBQ,EAAKR,MAAQQ,EAAKR,MAAQ,KAE3EQ,EAAK7C,cAA0BpB,IAAfiE,EAAK7C,MAAsB6C,EAAK9C,OAAS8C,EAAK7C,MAAQ6C,EAAK9C,OAE3E8C,EAAKiG,QAAWjG,EAAKiG,SAAWjG,EAAKiG,QAAQjK,SAAYgE,EAAKiG,QAAUjG,EAAK9C,MAE7E8C,EAAKyG,kBAAoBzG,EAAKyG,gBAE9BzG,EAAK0G,aAA8C,mBAAvB1G,EAAK0G,aAA+B1G,EAAK0G,aAAe,KAEpF,IAAIC,EAAMC,SAAS5G,EAAKlB,eAAgB,KAAO,EAmB/C,GAlBAkB,EAAKlB,eAAiB6H,EAAM,EAAI,EAAIA,EAE/BlM,EAAOuF,EAAKlC,WACbkC,EAAKlC,SAAU,GAEdrD,EAAOuF,EAAKjC,WACbiC,EAAKjC,SAAU,GAEdiC,EAAKlC,SAAWkC,EAAKjC,SAAYiC,EAAKjC,QAAUiC,EAAKlC,UACtDkC,EAAKjC,QAAUiC,EAAKlC,SAAU,GAE9BkC,EAAKlC,SACL6F,KAAKkD,WAAW7G,EAAKlC,SAErBkC,EAAKjC,SACL4F,KAAKmD,WAAW9G,EAAKjC,SAGrB7D,EAAQ8F,EAAKhC,WAAY,CACzB,IAAI+I,GAAW,IAAI9K,MAAOwF,cAAgB,GAC1CzB,EAAKhC,UAAU,GAAK4I,SAAS5G,EAAKhC,UAAU,GAAI,KAAO+I,EACvD/G,EAAKhC,UAAU,GAAK4I,SAAS5G,EAAKhC,UAAU,GAAI,KAAO+I,OAEvD/G,EAAKhC,UAAYnB,KAAKE,IAAI6J,SAAS5G,EAAKhC,UAAW,MAAQf,EAASe,UAChEgC,EAAKhC,UAAY,MACjBgC,EAAKhC,UAAY,KAIzB,OAAOgC,GAMXzF,SAAU,SAASgD,GAGf,OADAA,EAASA,GAAUoG,KAAKV,GAAG1F,OACtB9C,EAAOkJ,KAAKqD,IAGbrD,KAAKV,GAAG1I,SACHoJ,KAAKV,GAAG1I,SAASoJ,KAAKqD,GAAIzJ,GAE/B9E,EACKJ,EAAOsL,KAAKqD,IAAIzJ,OAAOA,GAEzBoG,KAAKqD,GAAGC,eARJ,IAcfC,UAAW,WAEP,OAAOzO,EAAYJ,EAAOsL,KAAKqD,IAAM,MAMzCG,UAAW,SAAStM,EAAMuM,GAElB3O,GAAaJ,EAAOgP,SAASxM,IAC7B8I,KAAKpC,QAAQ1G,EAAKuK,SAAUgC,IAOpCnG,QAAS,WAEL,OAAOxG,EAAOkJ,KAAKqD,IAAM,IAAI/K,KAAK0H,KAAKqD,GAAGrM,WAAa,MAM3D4G,QAAS,SAAS1G,EAAMuM,GAEpB,IAAKvM,EAQD,OAPA8I,KAAKqD,GAAK,KAENrD,KAAKV,GAAG/F,QACRyG,KAAKV,GAAG/F,MAAM0H,MAAQ,GACtBzI,EAAUwH,KAAKV,GAAG/F,MAAO,SAAU,CAAEoI,QAAS3B,QAG3CA,KAAK2D,OAKhB,GAHoB,iBAATzM,IACPA,EAAO,IAAIoB,KAAKA,KAAKuB,MAAM3C,KAE1BJ,EAAOI,GAAZ,CAIA,IAAI0M,EAAM5D,KAAKV,GAAGnF,QACd0J,EAAM7D,KAAKV,GAAGlF,QAEdtD,EAAO8M,IAAQ1M,EAAO0M,EACtB1M,EAAO0M,EACA9M,EAAO+M,IAAQ3M,EAAO2M,IAC7B3M,EAAO2M,GAGX7D,KAAKqD,GAAK,IAAI/K,KAAKpB,EAAKF,WACxBS,EAAgBuI,KAAKqD,IACrBrD,KAAK6C,SAAS7C,KAAKqD,IAEfrD,KAAKV,GAAG/F,QACRyG,KAAKV,GAAG/F,MAAM0H,MAAQjB,KAAKpJ,WAC3B4B,EAAUwH,KAAKV,GAAG/F,MAAO,SAAU,CAAEoI,QAAS3B,QAE7CyD,GAA+C,mBAArBzD,KAAKV,GAAGvD,UACnCiE,KAAKV,GAAGvD,SAASlF,KAAKmJ,KAAMA,KAAK1C,aAOzCwG,MAAO,WAEH9D,KAAKpC,QAAQ,OAMjBiF,SAAU,SAAS3L,GAEf,IAAI6M,GAAc,EAElB,GAAKjN,EAAOI,GAAZ,CAIA,GAAI8I,KAAKgE,UAAW,CAChB,IAAIC,EAAmB,IAAI3L,KAAK0H,KAAKgE,UAAU,GAAG1M,KAAM0I,KAAKgE,UAAU,GAAGxM,MAAO,GAC7E0M,EAAkB,IAAI5L,KAAK0H,KAAKgE,UAAUhE,KAAKgE,UAAUG,OAAO,GAAG7M,KAAM0I,KAAKgE,UAAUhE,KAAKgE,UAAUG,OAAO,GAAG3M,MAAO,GACxH4M,EAAclN,EAAKF,UAEvBkN,EAAgBG,SAASH,EAAgBI,WAAW,GACpDJ,EAAgBtG,QAAQsG,EAAgB5G,UAAU,GAClDyG,EAAeK,EAAcH,EAAiBjN,WAAakN,EAAgBlN,UAAYoN,EAGvFL,IACA/D,KAAKgE,UAAY,CAAC,CACdxM,MAAON,EAAKoN,WACZhN,KAAMJ,EAAK4G,gBAEc,UAAzBkC,KAAKV,GAAGlE,eACR4E,KAAKgE,UAAU,GAAGxM,OAAS,EAAIwI,KAAKV,GAAGnE,iBAI/C6E,KAAKuE,oBAGTjD,WAAY,SAASkD,EAAMjG,GAEvB,IAGIkG,EAHAtN,EAAM6I,KAAK1C,WAAa,IAAIhF,KAC5BoM,EAAa,MAAAzB,SAAS1E,GAIb,QAATiG,EACAC,EAAS,IAAInM,KAAKnB,EAAIwN,UAAYD,GAClB,aAATF,IACPC,EAAS,IAAInM,KAAKnB,EAAIwN,UAAYD,IAGtC1E,KAAKpC,QAAQ6G,IAGjBF,gBAAiB,WACbvE,KAAKgE,UAAU,GAAKhL,EAAegH,KAAKgE,UAAU,IAClD,IAAK,IAAIhF,EAAI,EAAGA,EAAIgB,KAAKV,GAAGnE,eAAgB6D,IACxCgB,KAAKgE,UAAUhF,GAAKhG,EAAe,CAC/BxB,MAAOwI,KAAKgE,UAAU,GAAGxM,MAAQwH,EACjC1H,KAAM0I,KAAKgE,UAAU,GAAG1M,OAGhC0I,KAAK2D,QAGTiB,UAAW,WAEP5E,KAAK6C,SAAS,IAAIvK,OAMtB0I,UAAW,SAASxJ,GAEXT,MAAMS,KACPwI,KAAKgE,UAAU,GAAGxM,MAAQyL,SAASzL,EAAO,IAC1CwI,KAAKuE,oBAIb9I,UAAW,WAEPuE,KAAKgE,UAAU,GAAGxM,QAClBwI,KAAKuE,mBAGT/D,UAAW,WAEPR,KAAKgE,UAAU,GAAGxM,QAClBwI,KAAKuE,mBAMTrD,SAAU,SAAS5J,GAEVP,MAAMO,KACP0I,KAAKgE,UAAU,GAAG1M,KAAO2L,SAAS3L,EAAM,IACxC0I,KAAKuE,oBAObrB,WAAY,SAASjC,GAEdA,aAAiB3I,MAChBb,EAAgBwJ,GAChBjB,KAAKV,GAAGnF,QAAU8G,EAClBjB,KAAKV,GAAG9E,QAAWyG,EAAMnD,cACzBkC,KAAKV,GAAG5E,SAAWuG,EAAMqD,aAEzBtE,KAAKV,GAAGnF,QAAUb,EAASa,QAC3B6F,KAAKV,GAAG9E,QAAWlB,EAASkB,QAC5BwF,KAAKV,GAAG5E,SAAWpB,EAASoB,SAC5BsF,KAAKV,GAAG1E,WAAatB,EAASsB,YAGlCoF,KAAK2D,QAMTR,WAAY,SAASlC,GAEdA,aAAiB3I,MAChBb,EAAgBwJ,GAChBjB,KAAKV,GAAGlF,QAAU6G,EAClBjB,KAAKV,GAAG7E,QAAUwG,EAAMnD,cACxBkC,KAAKV,GAAG3E,SAAWsG,EAAMqD,aAEzBtE,KAAKV,GAAGlF,QAAUd,EAASc,QAC3B4F,KAAKV,GAAG7E,QAAUnB,EAASmB,QAC3BuF,KAAKV,GAAG3E,SAAWrB,EAASqB,SAC5BqF,KAAKV,GAAGzE,SAAWvB,EAASuB,UAGhCmF,KAAK2D,QAGTkB,cAAe,SAAS5D,GAEpBjB,KAAKV,GAAG1E,WAAaqG,GAGzB6D,YAAa,SAAS7D,GAElBjB,KAAKV,GAAGzE,SAAWoG,GAMvB0C,KAAM,SAASoB,GAEX,GAAK/E,KAAKG,IAAO4E,EAAjB,CAGA,IAMI7F,EANA7C,EAAO2D,KAAKV,GACZ9E,EAAU6B,EAAK7B,QACfC,EAAU4B,EAAK5B,QACfC,EAAW2B,EAAK3B,SAChBC,EAAW0B,EAAK1B,SAChB8E,EAAO,GAGPO,KAAKgF,IAAMxK,IACXwF,KAAKgF,GAAKxK,GACLzD,MAAM2D,IAAasF,KAAKiF,GAAKvK,IAC9BsF,KAAKiF,GAAKvK,IAGdsF,KAAKgF,IAAMvK,IACXuF,KAAKgF,GAAKvK,GACL1D,MAAM4D,IAAaqF,KAAKiF,GAAKtK,IAC9BqF,KAAKiF,GAAKtK,IAIlB,IAAK,IAAIqE,EAAI,EAAGA,EAAI3C,EAAKlB,eAAgB6D,IACrCE,EAAS,cAAgBhG,KAAKgM,SAAStO,SAAS,IAAIZ,QAAO,WAAa,IAAImP,OAAO,EAAG,GACtF1F,GAAQ,4BAA8BX,EAAYkB,KAAMhB,EAAGgB,KAAKgE,UAAUhF,GAAG1H,KAAM0I,KAAKgE,UAAUhF,GAAGxH,MAAOwI,KAAKgE,UAAU,GAAG1M,KAAM4H,GAAUc,KAAKoF,OAAOpF,KAAKgE,UAAUhF,GAAG1H,KAAM0I,KAAKgE,UAAUhF,GAAGxH,MAAO0H,GAAU,SAGzNc,KAAK1K,GAAG+P,UAAY5F,EAEhBpD,EAAK7C,OACkB,WAApB6C,EAAK9C,MAAM+L,MACVnQ,GAAI,WACAkH,EAAKiG,QAAQiD,UACd,GAImB,mBAAnBvF,KAAKV,GAAGpD,QACf8D,KAAKV,GAAGpD,OAAO8D,MAGf3D,EAAK7C,OAEL6C,EAAK9C,MAAM8I,aAAa,aAAchG,EAAK5C,aAInD+L,eAAgB,WAEZ,IAAIjM,EAAOyI,EAAKyD,EAAOC,EAAQC,EAAeC,EAAgBC,EAAWC,EAAMC,EAAKC,EAAYC,EAAaC,EAE7G,IAAIlG,KAAKV,GAAGjE,UAAZ,CAcA,GAZA2E,KAAK1K,GAAG6Q,MAAMzM,SAAW,WAGzBsI,EADAzI,EAAQyG,KAAKV,GAAGgD,QAEhBmD,EAAQzF,KAAK1K,GAAG8Q,YAChBV,EAAS1F,KAAK1K,GAAG+Q,aACjBV,EAAgB3Q,OAAOsR,YAAcpR,EAASqR,gBAAgBC,YAC9DZ,EAAiB5Q,OAAOyR,aAAevR,EAASqR,gBAAgBG,aAChEb,EAAY7Q,OAAO2R,aAAezR,EAASuN,KAAKoD,WAAa3Q,EAASqR,gBAAgBV,UACtFI,GAAc,EACdC,GAAgB,EAE2B,mBAAhC3M,EAAMqN,sBAEbd,GADAE,EAAazM,EAAMqN,yBACDd,KAAO9Q,OAAO6R,YAChCd,EAAMC,EAAWc,OAAS9R,OAAO2R,iBAIjC,IAFAb,EAAO9D,EAAI+E,WACXhB,EAAO/D,EAAIgF,UAAYhF,EAAIqE,aACpBrE,EAAMA,EAAIiF,cACbnB,GAAQ9D,EAAI+E,WACZhB,GAAQ/D,EAAIgF,WAKfhH,KAAKV,GAAG3F,YAAcmM,EAAOL,EAAQE,GAElC3F,KAAKV,GAAG5F,SAAStD,QAAQ,UAAW,GACpC0P,EAAOL,EAAQlM,EAAM6M,YAAc,KAGvCN,EAAOA,EAAOL,EAAQlM,EAAM6M,YAC5BH,GAAc,IAEbjG,KAAKV,GAAG3F,YAAcoM,EAAML,EAASE,EAAiBC,GAEnD7F,KAAKV,GAAG5F,SAAStD,QAAQ,QAAS,GAClC2P,EAAML,EAASnM,EAAM8M,aAAe,KAGxCN,EAAMA,EAAML,EAASnM,EAAM8M,aAC3BH,GAAgB,GAGpBlG,KAAK1K,GAAG6Q,MAAML,KAAOA,EAAO,KAC5B9F,KAAK1K,GAAG6Q,MAAMJ,IAAMA,EAAM,KAE1B1P,EAAS2J,KAAK1K,GAAI2Q,EAAc,eAAiB,iBACjD5P,EAAS2J,KAAK1K,GAAI4Q,EAAgB,iBAAmB,eACrD5P,EAAY0J,KAAK1K,GAAK2Q,EAA+B,gBAAjB,gBACpC3P,EAAY0J,KAAK1K,GAAK4Q,EAAmC,cAAnB,oBAM1Cd,OAAQ,SAAS9N,EAAME,EAAO0H,GAE1B,IAAI7C,EAAS2D,KAAKV,GACd4H,EAAS,IAAI5O,KACbiG,EAAShH,EAAeD,EAAME,GAC9B2P,EAAS,IAAI7O,KAAKhB,EAAME,EAAO,GAAGJ,SAClCsB,EAAS,GACT0O,EAAS,GACb3P,EAAgByP,GACZ7K,EAAKrC,SAAW,IAChBmN,GAAU9K,EAAKrC,UACF,IACTmN,GAAU,GAUlB,IAPA,IAAI3L,EAA0B,IAAVhE,EAAc,GAAKA,EAAQ,EAC3CiE,EAAsB,KAAVjE,EAAe,EAAIA,EAAQ,EACvC6P,EAAgC,IAAV7P,EAAcF,EAAO,EAAIA,EAC/CgQ,EAA4B,KAAV9P,EAAeF,EAAO,EAAIA,EAC5CiQ,EAAsBhQ,EAAe8P,EAAqB7L,GAC1DgM,EAAQjJ,EAAO4I,EACfM,EAAQD,EACNC,EAAQ,GACVA,GAAS,EAEbD,GAAS,EAAIC,EAEb,IADA,IAAIC,GAAiB,EACZ7I,EAAI,EAAG8I,EAAI,EAAG9I,EAAI2I,EAAO3I,IAClC,CACI,IAAI1H,EAAM,IAAImB,KAAKhB,EAAME,EAAYqH,EAAIsI,EAAT,GAC5BrK,IAAahG,EAAOkJ,KAAKqD,KAAM1L,EAAaR,EAAK6I,KAAKqD,IACtDxG,EAAUlF,EAAaR,EAAK+P,GAC5BnK,GAAuD,IAA5CV,EAAKP,OAAO1F,QAAQe,EAAImM,gBACnC5G,EAAUmC,EAAIsI,GAAUtI,GAAMN,EAAO4I,EACrCS,EAAiB/I,EAAIsI,EAAT,EACZU,EAAcrQ,EACdsQ,EAAaxQ,EACb2F,EAAeZ,EAAKzB,YAAcjD,EAAa0E,EAAKzB,WAAYzD,GAChE+F,EAAab,EAAKxB,UAAYlD,EAAa0E,EAAKxB,SAAU1D,GAC1D6F,EAAYX,EAAKzB,YAAcyB,EAAKxB,UAAYwB,EAAKzB,WAAazD,GAAOA,EAAMkF,EAAKxB,SAMpF6B,IACImC,EAAIsI,GACJS,EAAYL,EAAsBK,EAClCC,EAAcrM,EACdsM,EAAaT,IAEbO,GAAwBrJ,EACxBsJ,EAAcpM,EACdqM,EAAaR,IAIrB,IAAIS,EAAY,CACR5Q,IAAKyQ,EACLpQ,MAAOqQ,EACPvQ,KAAMwQ,EACN/K,SAAUA,EACVD,WAAYA,EACZD,QAASA,EACTD,WAxBUP,EAAKlC,SAAWhD,EAAMkF,EAAKlC,SAC3BkC,EAAKjC,SAAWjD,EAAMkF,EAAKjC,SAC3BiC,EAAKyG,iBAAmB7L,EAAUE,IAClCkF,EAAK0G,cAAgB1G,EAAK0G,aAAa5L,GAsBjDuF,QAASA,EACTO,aAAcA,EACdC,WAAYA,EACZF,UAAWA,EACX/B,gCAAiCoB,EAAKpB,gCACtCC,2CAA4CmB,EAAKnB,4CAGrDmB,EAAK9B,eAAiBuC,IACtB4K,GAAiB,GAGrBN,EAAIzK,KAAKJ,EAAUwL,IAEP,KAANJ,IACEtL,EAAK/B,gBACL8M,EAAIY,QAAQ9J,EAAWW,EAAIsI,EAAQ3P,EAAOF,EAAM+E,EAAKpC,yBAEzDvB,EAAKiE,KAAK2B,EAAU8I,EAAK/K,EAAKvB,MAAOuB,EAAK9B,cAAemN,IACzDN,EAAM,GACNO,EAAI,EACJD,GAAiB,GAGzB,OAAO9H,EAAYvD,EAAM3D,EAAMwG,IAGnCkC,UAAW,WAEP,OAAOpB,KAAKG,IAGhByB,KAAM,WAEG5B,KAAKoB,cACNpB,KAAKG,IAAK,EACVH,KAAK2D,OACLrN,EAAY0J,KAAK1K,GAAI,aACjB0K,KAAKV,GAAG9F,QACRnE,EAASH,EAAU,QAAS8K,KAAKmC,UACjCnC,KAAKwF,kBAEqB,mBAAnBxF,KAAKV,GAAGtD,QACfgE,KAAKV,GAAGtD,OAAOnF,KAAKmJ,QAKhCU,KAAM,WAEF,IAAIuH,EAAIjI,KAAKG,IACH,IAAN8H,IACIjI,KAAKV,GAAG9F,OACR7D,EAAYT,EAAU,QAAS8K,KAAKmC,UAGnCnC,KAAKV,GAAGjE,YACT2E,KAAK1K,GAAG6Q,MAAMzM,SAAW,SACzBsG,KAAK1K,GAAG6Q,MAAML,KAAO,OACrB9F,KAAK1K,GAAG6Q,MAAMJ,IAAM,QAExB1P,EAAS2J,KAAK1K,GAAI,aAClB0K,KAAKG,IAAK,OACA/H,IAAN6P,GAA8C,mBAApBjI,KAAKV,GAAGrD,SAClC+D,KAAKV,GAAGrD,QAAQpF,KAAKmJ,QAQjCkI,QAAS,WAEL,IAAI7L,EAAO2D,KAAKV,GAEhBU,KAAKU,OACL/K,EAAYqK,KAAK1K,GAAI,YAAa0K,KAAKE,cAAc,GACrDvK,EAAYqK,KAAK1K,GAAI,WAAY0K,KAAKE,cAAc,GACpDvK,EAAYqK,KAAK1K,GAAI,SAAU0K,KAAKe,WAChC1E,EAAKF,eACLxG,EAAYT,EAAU,UAAW8K,KAAKmB,cAEtC9E,EAAK9C,QACL5D,EAAY0G,EAAK9C,MAAO,SAAUyG,KAAK0B,gBACnCrF,EAAK7C,QACL7D,EAAY0G,EAAKiG,QAAS,QAAStC,KAAK8B,eACxCnM,EAAY0G,EAAKiG,QAAS,QAAStC,KAAK6B,eACxClM,EAAY0G,EAAKiG,QAAS,OAAQtC,KAAK+B,gBAG3C/B,KAAK1K,GAAGiL,YACRP,KAAK1K,GAAGiL,WAAW4H,YAAYnI,KAAK1K,MAMzCuK,EAjwCcpL,CAAQC,GAThC,GCFC,WACA,SAAS0T,EAAkBC,EAAMpH,GAC/B,MAAMqH,EAAQpT,SAASqN,cAAc,SAIrC,OAHA+F,EAAMhD,KAAO,SACbgD,EAAMD,KAAOA,EACbC,EAAMrH,MAAQA,EACPqH,EAGT,SAASC,EAAiBC,GACxB,IAAIC,EAAUD,EAAK/H,aAAa,gBAChC,GAAIgI,IAAYzT,OAAO0T,QAAQD,GAC7B,OAGF,MAAME,EAASP,EAAiB,UAAWI,EAAK/H,aAAa,gBACvDmI,EAAOR,EAAiB,cAAeI,EAAK/H,aAAa,cACzDoI,EAAO3T,SAASqN,cAAc,QAEpCsG,EAAKF,OAA+C,QAArCH,EAAK/H,aAAa,eAA4B,MAAQ,OACrEoI,EAAKC,OAASN,EAAK/H,aAAa,WAChCoI,EAAK1C,MAAM4C,QAAU,SAErBF,EAAKrG,YAAYoG,GACjBC,EAAKrG,YAAYmG,GACjBzT,SAASuN,KAAKD,YAAYqG,GAC1BA,EAAKG,SAGPhU,OAAOC,iBAAiB,SAAS,SAAUM,GAGzC,IAFA,IAAI0T,EAAU1T,EAAE6K,OAET6I,GAAWA,EAAQxI,kBACpBwI,EAAQxI,aAAa,eAGvB,OAFA8H,EAAgBU,GAChB1T,EAAEsL,kBACK,EAEPoI,EAAUA,EAAQ1I,eAGrB,GAzCH,GA4CFvL,OAAOkU,OAAS,KACd,MAAM3Q,EAAQ4Q,MAAMxS,UAAU4B,MAK9BA,EAAM1B,KAAK3B,SAASkU,iBAAiB,gBAAiB,GAAGC,SAAS9P,IAChE,MAAM+P,EAAMtU,OAAOuU,SAASC,KACtBC,EAAqB,IAAIC,IAAInQ,EAAMkH,aAAa,QAASvL,SAASyU,SAASH,KAE7EF,EAAIM,WAAWH,IACjBlQ,EAAMsQ,UAAUC,IAAI,aAOxBvR,EAAM1B,KAAK3B,SAASkU,iBAAiB,4BAA6B,GAAGC,SAASU,IAC5EA,EAAO9U,iBAAiB,SAAS,WAC/B,MAAM+U,EAAeD,EAAOE,QAAQ,gBACpCD,EAAazJ,WAAW4H,YAAY6B,SAOxC,MAAME,EAAchV,SAASiV,cAAc,2BAC3C,IAAKD,EAAa,OAElBA,EAAYjV,iBAAiB,UAAU,SAAUM,GAC/CA,EAAEsL,iBAEF,IAAIuJ,GAAY,EAEhB7R,EAAM1B,KAAKmJ,KAAKoJ,iBAAiB,UAAW,GAAGC,SAAS9P,IACtD,MAAM8Q,EAAO9Q,EAAM+Q,qBAAqB,SAAS,GAAGC,YAC9CC,EAAQjR,EAAMkR,uBAAuB,SAAS,GAC9CC,EAAMnR,EAAMkR,uBAAuB,OAAO,GAE5CD,GAASE,IACS,KAAhBF,EAAMvJ,OAA8B,KAAdyJ,EAAIzJ,OAC5BjM,OAAO2V,MAAM,sCAAsCN,WACnDD,GAAY,GACW,KAAdM,EAAIzJ,OAAgC,KAAhBuJ,EAAMvJ,QACnCjM,OAAO2V,MAAM,wCAAwCN,WACrDD,GAAY,OAKdA,IACF7R,EAAM1B,KAAKmJ,KAAKoJ,iBAAiB,iBAAkB,GAAGC,SAAS9P,IACzC,KAAhBA,EAAM0H,QACR1H,EAAMqR,UAAW,MAIrBrV,EAAE6K,OAAO4I,aAIbzQ,EAAM1B,KAAK3B,SAASkU,iBAAiB,sBAAuB,GAAGC,SAAS9P,IACtEA,EAAMtE,iBAAiB,UAAWM,IAChCA,EAAE6K,OAAOyK,mBAAmBxC,KAAO9S,EAAE6K,OAAOa,YAIhD,MAAM6J,EAAa5T,GACjBA,EACG6T,eAAe,QAAS,CAAEzT,KAAM,UAAWE,MAAO,UAAWL,IAAK,YAClEnB,QAAO,sBAAwB,YAE9BgV,EAAaC,IACjB,MAAMC,EAAYD,EAAWE,MAAM,KACnC,GAAyB,IAArBD,EAAU/G,OACZ,OAAO,IAAI7L,KAAK4S,EAAU,GAAIA,EAAU,GAAK,EAAGA,EAAU,KAK9D3S,EAAM1B,KAAK3B,SAASkU,iBAAiB,eAAgB,GAAGC,SAAS9P,IAC/D,MAAMO,EAAckR,EAAUzR,EAAM0H,QAAU,IAAI3I,KAElD,IAAI8S,EAAAvW,GAAJ,CAAY,CACV0E,MAAOA,EACP3C,SAAUM,GAAQ4T,EAAW5T,GAC7B6E,SAAU7E,GAASqC,EAAM0H,MAAQ6J,EAAW5T,GAC5C4C,YAAaA,EACbD,MAAOmR,EACPnP,MAAO,wBAKXtD,EAAM1B,KAAK3B,SAASkU,iBAAiB,sBAAuB,GAAGC,SAAS9P,IACtEA,EAAMtE,iBAAiB,SAAS,SAAUM,GACxC,IAAID,EAAKiE,EAET,MAAQjE,EAAKA,EAAG+V,kBAAqB/V,EAAGgW,SAAWhW,EAAGiW,iBAAiB1U,KAAKvB,EAD3D,gBAC6EA,EAAGiL,WAAW4H,YAAY7S","sources":["node_modules/pikaday/pikaday.js","js/torch.js"],"sourcesContent":["/*!\n * Pikaday\n *\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday\n */\n\n(function (root, factory)\n{\n 'use strict';\n\n var moment;\n if (typeof exports === 'object') {\n // CommonJS module\n // Load moment.js as an optional dependency\n try { moment = require('moment'); } catch (e) {}\n module.exports = factory(moment);\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(function (req)\n {\n // Load moment.js as an optional dependency\n var id = 'moment';\n try { moment = req(id); } catch (e) {}\n return factory(moment);\n });\n } else {\n root.Pikaday = factory(root.moment);\n }\n}(this, function (moment)\n{\n 'use strict';\n\n /**\n * feature detection and helper functions\n */\n var hasMoment = typeof moment === 'function',\n\n hasEventListeners = !!window.addEventListener,\n\n document = window.document,\n\n sto = window.setTimeout,\n\n addEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.addEventListener(e, callback, !!capture);\n } else {\n el.attachEvent('on' + e, callback);\n }\n },\n\n removeEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.removeEventListener(e, callback, !!capture);\n } else {\n el.detachEvent('on' + e, callback);\n }\n },\n\n trim = function(str)\n {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\n },\n\n hasClass = function(el, cn)\n {\n return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\n },\n\n addClass = function(el, cn)\n {\n if (!hasClass(el, cn)) {\n el.className = (el.className === '') ? cn : el.className + ' ' + cn;\n }\n },\n\n removeClass = function(el, cn)\n {\n el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\n },\n\n isArray = function(obj)\n {\n return (/Array/).test(Object.prototype.toString.call(obj));\n },\n\n isDate = function(obj)\n {\n return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n },\n\n isWeekend = function(date)\n {\n var day = date.getDay();\n return day === 0 || day === 6;\n },\n\n isLeapYear = function(year)\n {\n // solution lifted from date.js (MIT license): https://github.com/datejs/Datejs\n return ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);\n },\n\n getDaysInMonth = function(year, month)\n {\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n },\n\n setToStartOfDay = function(date)\n {\n if (isDate(date)) date.setHours(0,0,0,0);\n },\n\n compareDates = function(a,b)\n {\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n return a.getTime() === b.getTime();\n },\n\n extend = function(to, from, overwrite)\n {\n var prop, hasProp;\n for (prop in from) {\n hasProp = to[prop] !== undefined;\n if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\n if (isDate(from[prop])) {\n if (overwrite) {\n to[prop] = new Date(from[prop].getTime());\n }\n }\n else if (isArray(from[prop])) {\n if (overwrite) {\n to[prop] = from[prop].slice(0);\n }\n } else {\n to[prop] = extend({}, from[prop], overwrite);\n }\n } else if (overwrite || !hasProp) {\n to[prop] = from[prop];\n }\n }\n return to;\n },\n\n fireEvent = function(el, eventName, data)\n {\n var ev;\n\n if (document.createEvent) {\n ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, true, false);\n ev = extend(ev, data);\n el.dispatchEvent(ev);\n } else if (document.createEventObject) {\n ev = document.createEventObject();\n ev = extend(ev, data);\n el.fireEvent('on' + eventName, ev);\n }\n },\n\n adjustCalendar = function(calendar) {\n if (calendar.month < 0) {\n calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\n calendar.month += 12;\n }\n if (calendar.month > 11) {\n calendar.year += Math.floor(Math.abs(calendar.month)/12);\n calendar.month -= 12;\n }\n return calendar;\n },\n\n /**\n * defaults and localisation\n */\n defaults = {\n\n // bind the picker to a form field\n field: null,\n\n // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\n bound: undefined,\n\n // data-attribute on the input field with an aria assistance text (only applied when `bound` is set)\n ariaLabel: 'Use the arrow keys to pick a date',\n\n // position of the datepicker, relative to the field (default to bottom & left)\n // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\n position: 'bottom left',\n\n // automatically fit in the viewport even if it means repositioning from the position option\n reposition: true,\n\n // the default output format for `.toString()` and `field` value\n format: 'YYYY-MM-DD',\n\n // the toString function which gets passed a current date object and format\n // and returns a string\n toString: null,\n\n // used to create date object from current input string\n parse: null,\n\n // the initial date to view when first opened\n defaultDate: null,\n\n // make the `defaultDate` the initial selected value\n setDefaultDate: false,\n\n // first day of week (0: Sunday, 1: Monday etc)\n firstDay: 0,\n\n // minimum number of days in the week that gets week number one\n // default ISO 8601, week 01 is the week with the first Thursday (4)\n firstWeekOfYearMinDays: 4,\n\n // the default flag for moment's strict date parsing\n formatStrict: false,\n\n // the minimum/earliest date that can be selected\n minDate: null,\n // the maximum/latest date that can be selected\n maxDate: null,\n\n // number of years either side, or array of upper/lower range\n yearRange: 10,\n\n // show week numbers at head of row\n showWeekNumber: false,\n\n // Week picker mode\n pickWholeWeek: false,\n\n // used internally (don't config outside)\n minYear: 0,\n maxYear: 9999,\n minMonth: undefined,\n maxMonth: undefined,\n\n startRange: null,\n endRange: null,\n\n isRTL: false,\n\n // Additional text to append to the year in the calendar title\n yearSuffix: '',\n\n // Render the month after year in the calendar title\n showMonthAfterYear: false,\n\n // Render days of the calendar grid that fall in the next or previous month\n showDaysInNextAndPreviousMonths: false,\n\n // Allows user to select days that fall in the next or previous month\n enableSelectionDaysInNextAndPreviousMonths: false,\n\n // how many months are visible\n numberOfMonths: 1,\n\n // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\n // only used for the first display or when a selected date is not visible\n mainCalendar: 'left',\n\n // Specify a DOM element to render the calendar in\n container: undefined,\n\n // Blur field when date is selected\n blurFieldOnSelect : true,\n\n // internationalization\n i18n: {\n previousMonth : 'Previous Month',\n nextMonth : 'Next Month',\n months : ['January','February','March','April','May','June','July','August','September','October','November','December'],\n weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\n },\n\n // Theme Classname\n theme: null,\n\n // events array\n events: [],\n\n // callback function\n onSelect: null,\n onOpen: null,\n onClose: null,\n onDraw: null,\n\n // Enable keyboard input\n keyboardInput: true\n },\n\n\n /**\n * templating functions to abstract HTML rendering\n */\n renderDayName = function(opts, day, abbr)\n {\n day += opts.firstDay;\n while (day >= 7) {\n day -= 7;\n }\n return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\n },\n\n renderDay = function(opts)\n {\n var arr = [];\n var ariaSelected = 'false';\n if (opts.isEmpty) {\n if (opts.showDaysInNextAndPreviousMonths) {\n arr.push('is-outside-current-month');\n\n if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\n arr.push('is-selection-disabled');\n }\n\n } else {\n return ' ';\n }\n }\n if (opts.isDisabled) {\n arr.push('is-disabled');\n }\n if (opts.isToday) {\n arr.push('is-today');\n }\n if (opts.isSelected) {\n arr.push('is-selected');\n ariaSelected = 'true';\n }\n if (opts.hasEvent) {\n arr.push('has-event');\n }\n if (opts.isInRange) {\n arr.push('is-inrange');\n }\n if (opts.isStartRange) {\n arr.push('is-startrange');\n }\n if (opts.isEndRange) {\n arr.push('is-endrange');\n }\n return '' +\n '' +\n opts.day +\n ' ' +\n ' ';\n },\n\n isoWeek = function(date, firstWeekOfYearMinDays) {\n // Ensure we're at the start of the day.\n date.setHours(0, 0, 0, 0);\n\n // Thursday in current week decides the year because January 4th\n // is always in the first week according to ISO8601.\n var yearDay = date.getDate(),\n weekDay = date.getDay(),\n dayInFirstWeek = firstWeekOfYearMinDays,\n dayShift = dayInFirstWeek - 1, // counting starts at 0\n daysPerWeek = 7,\n prevWeekDay = function(day) { return (day + daysPerWeek - 1) % daysPerWeek; };\n\n // Adjust to Thursday in week 1 and count number of weeks from date to week 1.\n date.setDate(yearDay + dayShift - prevWeekDay(weekDay));\n\n var jan4th = new Date(date.getFullYear(), 0, dayInFirstWeek),\n msPerDay = 24 * 60 * 60 * 1000,\n daysBetween = (date.getTime() - jan4th.getTime()) / msPerDay,\n weekNum = 1 + Math.round((daysBetween - dayShift + prevWeekDay(jan4th.getDay())) / daysPerWeek);\n\n return weekNum;\n },\n\n renderWeek = function (d, m, y, firstWeekOfYearMinDays) {\n var date = new Date(y, m, d),\n week = hasMoment ? moment(date).isoWeek() : isoWeek(date, firstWeekOfYearMinDays);\n\n return '' + week + ' ';\n },\n\n renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\n {\n return '' + (isRTL ? days.reverse() : days).join('') + ' ';\n },\n\n renderBody = function(rows)\n {\n return '' + rows.join('') + ' ';\n },\n\n renderHead = function(opts)\n {\n var i, arr = [];\n if (opts.showWeekNumber) {\n arr.push(' ');\n }\n for (i = 0; i < 7; i++) {\n arr.push('' + renderDayName(opts, i, true) + ' ');\n }\n return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ' ';\n },\n\n renderTitle = function(instance, c, year, month, refYear, randId)\n {\n var i, j, arr,\n opts = instance._o,\n isMinYear = year === opts.minYear,\n isMaxYear = year === opts.maxYear,\n html = '',\n monthHtml,\n yearHtml,\n prev = true,\n next = true;\n\n for (arr = [], i = 0; i < 12; i++) {\n arr.push('
opts.maxMonth) ? ' disabled=\"disabled\"' : '') + '>' +\n opts.i18n.months[i] + ' ');\n }\n\n monthHtml = '
' + opts.i18n.months[month] + '' + arr.join('') + '
';\n\n if (isArray(opts.yearRange)) {\n i = opts.yearRange[0];\n j = opts.yearRange[1] + 1;\n } else {\n i = year - opts.yearRange;\n j = 1 + year + opts.yearRange;\n }\n\n for (arr = []; i < j && i <= opts.maxYear; i++) {\n if (i >= opts.minYear) {\n arr.push('
' + (i) + ' ');\n }\n }\n yearHtml = '
' + year + opts.yearSuffix + '' + arr.join('') + '
';\n\n if (opts.showMonthAfterYear) {\n html += yearHtml + monthHtml;\n } else {\n html += monthHtml + yearHtml;\n }\n\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n prev = false;\n }\n\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n next = false;\n }\n\n if (c === 0) {\n html += '
' + opts.i18n.previousMonth + ' ';\n }\n if (c === (instance._o.numberOfMonths - 1) ) {\n html += '
' + opts.i18n.nextMonth + ' ';\n }\n\n return html += '
';\n },\n\n renderTable = function(opts, data, randId)\n {\n return '' + renderHead(opts) + renderBody(data) + '
';\n },\n\n\n /**\n * Pikaday constructor\n */\n Pikaday = function(options)\n {\n var self = this,\n opts = self.config(options);\n\n self._onMouseDown = function(e)\n {\n if (!self._v) {\n return;\n }\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n\n if (!hasClass(target, 'is-disabled')) {\n if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\n self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\n if (opts.bound) {\n sto(function() {\n self.hide();\n if (opts.blurFieldOnSelect && opts.field) {\n opts.field.blur();\n }\n }, 100);\n }\n }\n else if (hasClass(target, 'pika-prev')) {\n self.prevMonth();\n }\n else if (hasClass(target, 'pika-next')) {\n self.nextMonth();\n }\n }\n if (!hasClass(target, 'pika-select')) {\n // if this is touch event prevent mouse events emulation\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n return false;\n }\n } else {\n self._c = true;\n }\n };\n\n self._onChange = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n if (hasClass(target, 'pika-select-month')) {\n self.gotoMonth(target.value);\n }\n else if (hasClass(target, 'pika-select-year')) {\n self.gotoYear(target.value);\n }\n };\n\n self._onKeyChange = function(e)\n {\n e = e || window.event;\n\n if (self.isVisible()) {\n\n switch(e.keyCode){\n case 13:\n case 27:\n if (opts.field) {\n opts.field.blur();\n }\n break;\n case 37:\n self.adjustDate('subtract', 1);\n break;\n case 38:\n self.adjustDate('subtract', 7);\n break;\n case 39:\n self.adjustDate('add', 1);\n break;\n case 40:\n self.adjustDate('add', 7);\n break;\n case 8:\n case 46:\n self.setDate(null);\n break;\n }\n }\n };\n\n self._parseFieldValue = function()\n {\n if (opts.parse) {\n return opts.parse(opts.field.value, opts.format);\n } else if (hasMoment) {\n var date = moment(opts.field.value, opts.format, opts.formatStrict);\n return (date && date.isValid()) ? date.toDate() : null;\n } else {\n return new Date(Date.parse(opts.field.value));\n }\n };\n\n self._onInputChange = function(e)\n {\n var date;\n\n if (e.firedBy === self) {\n return;\n }\n date = self._parseFieldValue();\n if (isDate(date)) {\n self.setDate(date);\n }\n if (!self._v) {\n self.show();\n }\n };\n\n self._onInputFocus = function()\n {\n self.show();\n };\n\n self._onInputClick = function()\n {\n self.show();\n };\n\n self._onInputBlur = function()\n {\n // IE allows pika div to gain focus; catch blur the input field\n var pEl = document.activeElement;\n do {\n if (hasClass(pEl, 'pika-single')) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n\n if (!self._c) {\n self._b = sto(function() {\n self.hide();\n }, 50);\n }\n self._c = false;\n };\n\n self._onClick = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement,\n pEl = target;\n if (!target) {\n return;\n }\n if (!hasEventListeners && hasClass(target, 'pika-select')) {\n if (!target.onchange) {\n target.setAttribute('onchange', 'return;');\n addEvent(target, 'change', self._onChange);\n }\n }\n do {\n if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\n self.hide();\n }\n };\n\n self.el = document.createElement('div');\n self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\n\n addEvent(self.el, 'mousedown', self._onMouseDown, true);\n addEvent(self.el, 'touchend', self._onMouseDown, true);\n addEvent(self.el, 'change', self._onChange);\n\n if (opts.keyboardInput) {\n addEvent(document, 'keydown', self._onKeyChange);\n }\n\n if (opts.field) {\n if (opts.container) {\n opts.container.appendChild(self.el);\n } else if (opts.bound) {\n document.body.appendChild(self.el);\n } else {\n opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\n }\n addEvent(opts.field, 'change', self._onInputChange);\n\n if (!opts.defaultDate) {\n opts.defaultDate = self._parseFieldValue();\n opts.setDefaultDate = true;\n }\n }\n\n var defDate = opts.defaultDate;\n\n if (isDate(defDate)) {\n if (opts.setDefaultDate) {\n self.setDate(defDate, true);\n } else {\n self.gotoDate(defDate);\n }\n } else {\n self.gotoDate(new Date());\n }\n\n if (opts.bound) {\n this.hide();\n self.el.className += ' is-bound';\n addEvent(opts.trigger, 'click', self._onInputClick);\n addEvent(opts.trigger, 'focus', self._onInputFocus);\n addEvent(opts.trigger, 'blur', self._onInputBlur);\n } else {\n this.show();\n }\n };\n\n\n /**\n * public Pikaday API\n */\n Pikaday.prototype = {\n\n\n /**\n * configure functionality\n */\n config: function(options)\n {\n if (!this._o) {\n this._o = extend({}, defaults, true);\n }\n\n var opts = extend(this._o, options, true);\n\n opts.isRTL = !!opts.isRTL;\n\n opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\n\n opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\n\n opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\n\n opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\n\n opts.disableWeekends = !!opts.disableWeekends;\n\n opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\n\n var nom = parseInt(opts.numberOfMonths, 10) || 1;\n opts.numberOfMonths = nom > 4 ? 4 : nom;\n\n if (!isDate(opts.minDate)) {\n opts.minDate = false;\n }\n if (!isDate(opts.maxDate)) {\n opts.maxDate = false;\n }\n if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\n opts.maxDate = opts.minDate = false;\n }\n if (opts.minDate) {\n this.setMinDate(opts.minDate);\n }\n if (opts.maxDate) {\n this.setMaxDate(opts.maxDate);\n }\n\n if (isArray(opts.yearRange)) {\n var fallback = new Date().getFullYear() - 10;\n opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\n opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\n } else {\n opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\n if (opts.yearRange > 100) {\n opts.yearRange = 100;\n }\n }\n\n return opts;\n },\n\n /**\n * return a formatted string of the current selection (using Moment.js if available)\n */\n toString: function(format)\n {\n format = format || this._o.format;\n if (!isDate(this._d)) {\n return '';\n }\n if (this._o.toString) {\n return this._o.toString(this._d, format);\n }\n if (hasMoment) {\n return moment(this._d).format(format);\n }\n return this._d.toDateString();\n },\n\n /**\n * return a Moment.js object of the current selection (if available)\n */\n getMoment: function()\n {\n return hasMoment ? moment(this._d) : null;\n },\n\n /**\n * set the current selection from a Moment.js object (if available)\n */\n setMoment: function(date, preventOnSelect)\n {\n if (hasMoment && moment.isMoment(date)) {\n this.setDate(date.toDate(), preventOnSelect);\n }\n },\n\n /**\n * return a Date object of the current selection\n */\n getDate: function()\n {\n return isDate(this._d) ? new Date(this._d.getTime()) : null;\n },\n\n /**\n * set the current selection\n */\n setDate: function(date, preventOnSelect)\n {\n if (!date) {\n this._d = null;\n\n if (this._o.field) {\n this._o.field.value = '';\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n\n return this.draw();\n }\n if (typeof date === 'string') {\n date = new Date(Date.parse(date));\n }\n if (!isDate(date)) {\n return;\n }\n\n var min = this._o.minDate,\n max = this._o.maxDate;\n\n if (isDate(min) && date < min) {\n date = min;\n } else if (isDate(max) && date > max) {\n date = max;\n }\n\n this._d = new Date(date.getTime());\n setToStartOfDay(this._d);\n this.gotoDate(this._d);\n\n if (this._o.field) {\n this._o.field.value = this.toString();\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n if (!preventOnSelect && typeof this._o.onSelect === 'function') {\n this._o.onSelect.call(this, this.getDate());\n }\n },\n\n /**\n * clear and reset the date\n */\n clear: function()\n {\n this.setDate(null);\n },\n\n /**\n * change view to a specific date\n */\n gotoDate: function(date)\n {\n var newCalendar = true;\n\n if (!isDate(date)) {\n return;\n }\n\n if (this.calendars) {\n var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\n lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\n visibleDate = date.getTime();\n // get the end of the month\n lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\n lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\n newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\n }\n\n if (newCalendar) {\n this.calendars = [{\n month: date.getMonth(),\n year: date.getFullYear()\n }];\n if (this._o.mainCalendar === 'right') {\n this.calendars[0].month += 1 - this._o.numberOfMonths;\n }\n }\n\n this.adjustCalendars();\n },\n\n adjustDate: function(sign, days) {\n\n var day = this.getDate() || new Date();\n var difference = parseInt(days)*24*60*60*1000;\n\n var newDay;\n\n if (sign === 'add') {\n newDay = new Date(day.valueOf() + difference);\n } else if (sign === 'subtract') {\n newDay = new Date(day.valueOf() - difference);\n }\n\n this.setDate(newDay);\n },\n\n adjustCalendars: function() {\n this.calendars[0] = adjustCalendar(this.calendars[0]);\n for (var c = 1; c < this._o.numberOfMonths; c++) {\n this.calendars[c] = adjustCalendar({\n month: this.calendars[0].month + c,\n year: this.calendars[0].year\n });\n }\n this.draw();\n },\n\n gotoToday: function()\n {\n this.gotoDate(new Date());\n },\n\n /**\n * change view to a specific month (zero-index, e.g. 0: January)\n */\n gotoMonth: function(month)\n {\n if (!isNaN(month)) {\n this.calendars[0].month = parseInt(month, 10);\n this.adjustCalendars();\n }\n },\n\n nextMonth: function()\n {\n this.calendars[0].month++;\n this.adjustCalendars();\n },\n\n prevMonth: function()\n {\n this.calendars[0].month--;\n this.adjustCalendars();\n },\n\n /**\n * change view to a specific full year (e.g. \"2012\")\n */\n gotoYear: function(year)\n {\n if (!isNaN(year)) {\n this.calendars[0].year = parseInt(year, 10);\n this.adjustCalendars();\n }\n },\n\n /**\n * change the minDate\n */\n setMinDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.minDate = value;\n this._o.minYear = value.getFullYear();\n this._o.minMonth = value.getMonth();\n } else {\n this._o.minDate = defaults.minDate;\n this._o.minYear = defaults.minYear;\n this._o.minMonth = defaults.minMonth;\n this._o.startRange = defaults.startRange;\n }\n\n this.draw();\n },\n\n /**\n * change the maxDate\n */\n setMaxDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.maxDate = value;\n this._o.maxYear = value.getFullYear();\n this._o.maxMonth = value.getMonth();\n } else {\n this._o.maxDate = defaults.maxDate;\n this._o.maxYear = defaults.maxYear;\n this._o.maxMonth = defaults.maxMonth;\n this._o.endRange = defaults.endRange;\n }\n\n this.draw();\n },\n\n setStartRange: function(value)\n {\n this._o.startRange = value;\n },\n\n setEndRange: function(value)\n {\n this._o.endRange = value;\n },\n\n /**\n * refresh the HTML\n */\n draw: function(force)\n {\n if (!this._v && !force) {\n return;\n }\n var opts = this._o,\n minYear = opts.minYear,\n maxYear = opts.maxYear,\n minMonth = opts.minMonth,\n maxMonth = opts.maxMonth,\n html = '',\n randId;\n\n if (this._y <= minYear) {\n this._y = minYear;\n if (!isNaN(minMonth) && this._m < minMonth) {\n this._m = minMonth;\n }\n }\n if (this._y >= maxYear) {\n this._y = maxYear;\n if (!isNaN(maxMonth) && this._m > maxMonth) {\n this._m = maxMonth;\n }\n }\n\n for (var c = 0; c < opts.numberOfMonths; c++) {\n randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\n html += '' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
';\n }\n\n this.el.innerHTML = html;\n\n if (opts.bound) {\n if(opts.field.type !== 'hidden') {\n sto(function() {\n opts.trigger.focus();\n }, 1);\n }\n }\n\n if (typeof this._o.onDraw === 'function') {\n this._o.onDraw(this);\n }\n\n if (opts.bound) {\n // let the screen reader user know to use arrow keys\n opts.field.setAttribute('aria-label', opts.ariaLabel);\n }\n },\n\n adjustPosition: function()\n {\n var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned;\n\n if (this._o.container) return;\n\n this.el.style.position = 'absolute';\n\n field = this._o.trigger;\n pEl = field;\n width = this.el.offsetWidth;\n height = this.el.offsetHeight;\n viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n leftAligned = true;\n bottomAligned = true;\n\n if (typeof field.getBoundingClientRect === 'function') {\n clientRect = field.getBoundingClientRect();\n left = clientRect.left + window.pageXOffset;\n top = clientRect.bottom + window.pageYOffset;\n } else {\n left = pEl.offsetLeft;\n top = pEl.offsetTop + pEl.offsetHeight;\n while((pEl = pEl.offsetParent)) {\n left += pEl.offsetLeft;\n top += pEl.offsetTop;\n }\n }\n\n // default position is bottom & left\n if ((this._o.reposition && left + width > viewportWidth) ||\n (\n this._o.position.indexOf('right') > -1 &&\n left - width + field.offsetWidth > 0\n )\n ) {\n left = left - width + field.offsetWidth;\n leftAligned = false;\n }\n if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\n (\n this._o.position.indexOf('top') > -1 &&\n top - height - field.offsetHeight > 0\n )\n ) {\n top = top - height - field.offsetHeight;\n bottomAligned = false;\n }\n\n this.el.style.left = left + 'px';\n this.el.style.top = top + 'px';\n\n addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned');\n addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned');\n removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned');\n removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned');\n },\n\n /**\n * render HTML for a particular month\n */\n render: function(year, month, randId)\n {\n var opts = this._o,\n now = new Date(),\n days = getDaysInMonth(year, month),\n before = new Date(year, month, 1).getDay(),\n data = [],\n row = [];\n setToStartOfDay(now);\n if (opts.firstDay > 0) {\n before -= opts.firstDay;\n if (before < 0) {\n before += 7;\n }\n }\n var previousMonth = month === 0 ? 11 : month - 1,\n nextMonth = month === 11 ? 0 : month + 1,\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\n yearOfNextMonth = month === 11 ? year + 1 : year,\n daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\n var cells = days + before,\n after = cells;\n while(after > 7) {\n after -= 7;\n }\n cells += 7 - after;\n var isWeekSelected = false;\n for (var i = 0, r = 0; i < cells; i++)\n {\n var day = new Date(year, month, 1 + (i - before)),\n isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\n isToday = compareDates(day, now),\n hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\n isEmpty = i < before || i >= (days + before),\n dayNumber = 1 + (i - before),\n monthNumber = month,\n yearNumber = year,\n isStartRange = opts.startRange && compareDates(opts.startRange, day),\n isEndRange = opts.endRange && compareDates(opts.endRange, day),\n isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\n isDisabled = (opts.minDate && day < opts.minDate) ||\n (opts.maxDate && day > opts.maxDate) ||\n (opts.disableWeekends && isWeekend(day)) ||\n (opts.disableDayFn && opts.disableDayFn(day));\n\n if (isEmpty) {\n if (i < before) {\n dayNumber = daysInPreviousMonth + dayNumber;\n monthNumber = previousMonth;\n yearNumber = yearOfPreviousMonth;\n } else {\n dayNumber = dayNumber - days;\n monthNumber = nextMonth;\n yearNumber = yearOfNextMonth;\n }\n }\n\n var dayConfig = {\n day: dayNumber,\n month: monthNumber,\n year: yearNumber,\n hasEvent: hasEvent,\n isSelected: isSelected,\n isToday: isToday,\n isDisabled: isDisabled,\n isEmpty: isEmpty,\n isStartRange: isStartRange,\n isEndRange: isEndRange,\n isInRange: isInRange,\n showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\n enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\n };\n\n if (opts.pickWholeWeek && isSelected) {\n isWeekSelected = true;\n }\n\n row.push(renderDay(dayConfig));\n\n if (++r === 7) {\n if (opts.showWeekNumber) {\n row.unshift(renderWeek(i - before, month, year, opts.firstWeekOfYearMinDays));\n }\n data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\n row = [];\n r = 0;\n isWeekSelected = false;\n }\n }\n return renderTable(opts, data, randId);\n },\n\n isVisible: function()\n {\n return this._v;\n },\n\n show: function()\n {\n if (!this.isVisible()) {\n this._v = true;\n this.draw();\n removeClass(this.el, 'is-hidden');\n if (this._o.bound) {\n addEvent(document, 'click', this._onClick);\n this.adjustPosition();\n }\n if (typeof this._o.onOpen === 'function') {\n this._o.onOpen.call(this);\n }\n }\n },\n\n hide: function()\n {\n var v = this._v;\n if (v !== false) {\n if (this._o.bound) {\n removeEvent(document, 'click', this._onClick);\n }\n\n if (!this._o.container) {\n this.el.style.position = 'static'; // reset\n this.el.style.left = 'auto';\n this.el.style.top = 'auto';\n }\n addClass(this.el, 'is-hidden');\n this._v = false;\n if (v !== undefined && typeof this._o.onClose === 'function') {\n this._o.onClose.call(this);\n }\n }\n },\n\n /**\n * GAME OVER\n */\n destroy: function()\n {\n var opts = this._o;\n\n this.hide();\n removeEvent(this.el, 'mousedown', this._onMouseDown, true);\n removeEvent(this.el, 'touchend', this._onMouseDown, true);\n removeEvent(this.el, 'change', this._onChange);\n if (opts.keyboardInput) {\n removeEvent(document, 'keydown', this._onKeyChange);\n }\n if (opts.field) {\n removeEvent(opts.field, 'change', this._onInputChange);\n if (opts.bound) {\n removeEvent(opts.trigger, 'click', this._onInputClick);\n removeEvent(opts.trigger, 'focus', this._onInputFocus);\n removeEvent(opts.trigger, 'blur', this._onInputBlur);\n }\n }\n if (this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n }\n }\n\n };\n\n return Pikaday;\n}));\n","import Pikaday from 'pikaday'\n\n// Phoenix html copied here since I ran into extensive issues trying to import\n// from the dep.\n;(function () {\n function buildHiddenInput (name, value) {\n const input = document.createElement('input')\n input.type = 'hidden'\n input.name = name\n input.value = value\n return input\n }\n\n function handleLinkClick (link) {\n var message = link.getAttribute('data-confirm')\n if (message && !window.confirm(message)) {\n return\n }\n\n const method = buildHiddenInput('_method', link.getAttribute('data-method'))\n const csrf = buildHiddenInput('_csrf_token', link.getAttribute('data-csrf'))\n const form = document.createElement('form')\n\n form.method = (link.getAttribute('data-method') === 'get') ? 'get' : 'post'\n form.action = link.getAttribute('data-to')\n form.style.display = 'hidden'\n\n form.appendChild(csrf)\n form.appendChild(method)\n document.body.appendChild(form)\n form.submit()\n }\n\n window.addEventListener('click', function (e) {\n var element = e.target\n\n while (element && element.getAttribute) {\n if (element.getAttribute('data-method')) {\n handleLinkClick(element)\n e.preventDefault()\n return false\n } else {\n element = element.parentNode\n }\n }\n }, false)\n})()\n\nwindow.onload = () => {\n const slice = Array.prototype.slice\n\n /*\n * Set active nav link\n */\n slice.call(document.querySelectorAll('.torch-nav a'), 0).forEach((field) => {\n const url = window.location.href\n const linkTargetFullPath = new URL(field.getAttribute('href'), document.baseURI).href\n\n if (url.startsWith(linkTargetFullPath)) {\n field.classList.add('active')\n }\n })\n\n /*\n * Flash Messages\n */\n slice.call(document.querySelectorAll('button.torch-flash-close'), 0).forEach((button) => {\n button.addEventListener('click', function () {\n const flashMessage = button.closest('.torch-flash')\n flashMessage.parentNode.removeChild(flashMessage)\n })\n })\n\n /*\n * Prevent empty fields from being submitted, since this breaks Filtrex.\n */\n const formFilters = document.querySelector('form#torch-filters-form')\n if (!formFilters) return\n\n formFilters.addEventListener('submit', function (e) {\n e.preventDefault()\n\n let canSubmit = true\n\n slice.call(this.querySelectorAll('.field'), 0).forEach((field) => {\n const text = field.getElementsByTagName('label')[0].textContent\n const start = field.getElementsByClassName('start')[0]\n const end = field.getElementsByClassName('end')[0]\n\n if (start && end) {\n if (start.value === '' && end.value !== '') {\n window.alert(`Please select a start date for the ${text} field`)\n canSubmit = false\n } else if (end.value === '' && start.value !== '') {\n window.alert(`Please select an end at date for the ${text} field`)\n canSubmit = false\n }\n }\n })\n\n if (canSubmit) {\n slice.call(this.querySelectorAll('input, select'), 0).forEach((field) => {\n if (field.value === '') {\n field.disabled = true\n }\n })\n\n e.target.submit()\n }\n })\n\n slice.call(document.querySelectorAll('select.filter-type'), 0).forEach((field) => {\n field.addEventListener('change', (e) => {\n e.target.nextElementSibling.name = e.target.value\n })\n })\n\n const formatDate = date =>\n date\n .toLocaleString('en-us', { year: 'numeric', month: '2-digit', day: '2-digit' })\n .replace(/(\\d+)\\/(\\d+)\\/(\\d+)/, '$3-$1-$2')\n\n const parseDate = (dateString) => {\n const dateParts = dateString.split('-')\n if (dateParts.length === 3) {\n return new Date(dateParts[0], dateParts[1] - 1, dateParts[2])\n }\n }\n\n /* eslint-disable no-new */\n slice.call(document.querySelectorAll('.datepicker'), 0).forEach((field) => {\n const defaultDate = parseDate(field.value) || new Date()\n\n new Pikaday({\n field: field,\n toString: date => formatDate(date),\n onSelect: date => (field.value = formatDate(date)),\n defaultDate: defaultDate,\n parse: parseDate,\n theme: 'torch-datepicker'\n })\n })\n /* eslint-enable no-new */\n\n slice.call(document.querySelectorAll('.torch-flash-close'), 0).forEach((field) => {\n field.addEventListener('click', function (e) {\n let el = field\n const selector = 'torch-flash'\n while ((el = el.parentElement) && !((el.matches || el.matchesSelector).call(el, selector))) { el.parentNode.removeChild(el) }\n })\n })\n}\n"],"names":["root","factory","moment","$d2b378008f565d8d$import$a2cb963221bbaab7","e1","$d2b378008f565d8d$exports","hasMoment","hasEventListeners","window","addEventListener","document","sto","setTimeout","addEvent","el","e","callback","capture","attachEvent","removeEvent","removeEventListener","detachEvent","trim","str","replace","hasClass","cn","className","indexOf","addClass","removeClass","isArray","obj","test","Object","prototype","toString","call","isDate","isNaN","getTime","isWeekend","date","day","getDay","isLeapYear","year","getDaysInMonth","month","setToStartOfDay","setHours","compareDates","a","b","extend","to","from","overwrite","prop","hasProp","undefined","nodeName","Date","slice","fireEvent","eventName","data","ev","createEvent","initEvent","dispatchEvent","createEventObject","adjustCalendar","calendar","Math","ceil","abs","floor","defaults","field","bound","ariaLabel","position","reposition","format","parse","defaultDate","setDefaultDate","firstDay","firstWeekOfYearMinDays","formatStrict","minDate","maxDate","yearRange","showWeekNumber","pickWholeWeek","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","yearSuffix","showMonthAfterYear","showDaysInNextAndPreviousMonths","enableSelectionDaysInNextAndPreviousMonths","numberOfMonths","mainCalendar","container","blurFieldOnSelect","i18n","previousMonth","nextMonth","months","weekdays","weekdaysShort","theme","events","onSelect","onOpen","onClose","onDraw","keyboardInput","renderDayName","opts","abbr","renderDay","arr","ariaSelected","isEmpty","push","isDisabled","isToday","isSelected","hasEvent","isInRange","isStartRange","isEndRange","join","isoWeek","yearDay","getDate","weekDay","dayInFirstWeek","dayShift","daysPerWeek","prevWeekDay","setDate","jan4th","getFullYear","msPerDay","daysBetween","round","renderWeek","d","m","y","renderRow","days","isRowSelected","reverse","renderBody","rows","renderHead","i","renderTitle","instance","c","refYear","randId","j","monthHtml","yearHtml","_o","isMinYear","isMaxYear","html","prev","next","renderTable","Pikaday","options","self","this","config","_onMouseDown","_v","target","event","srcElement","parentNode","prevMonth","getAttribute","hide","blur","_c","preventDefault","returnValue","_onChange","gotoMonth","value","gotoYear","_onKeyChange","isVisible","keyCode","adjustDate","_parseFieldValue","isValid","toDate","_onInputChange","firedBy","show","_onInputFocus","_onInputClick","_onInputBlur","pEl","activeElement","_b","_onClick","onchange","setAttribute","trigger","createElement","appendChild","body","insertBefore","nextSibling","defDate","gotoDate","disableWeekends","disableDayFn","nom","parseInt","setMinDate","setMaxDate","fallback","_d","toDateString","getMoment","setMoment","preventOnSelect","isMoment","draw","min","max","clear","newCalendar","calendars","firstVisibleDate","lastVisibleDate","length","visibleDate","setMonth","getMonth","adjustCalendars","sign","newDay","difference","valueOf","gotoToday","setStartRange","setEndRange","force","_y","_m","random","substr","render","innerHTML","type","focus","adjustPosition","width","height","viewportWidth","viewportHeight","scrollTop","left","top","clientRect","leftAligned","bottomAligned","style","offsetWidth","offsetHeight","innerWidth","documentElement","clientWidth","innerHeight","clientHeight","pageYOffset","getBoundingClientRect","pageXOffset","bottom","offsetLeft","offsetTop","offsetParent","now","before","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","after","isWeekSelected","r","dayNumber","monthNumber","yearNumber","dayConfig","unshift","v","destroy","removeChild","buildHiddenInput","name","input","handleLinkClick","link","message","confirm","method","csrf","form","action","display","submit","element","onload","Array","querySelectorAll","forEach","url","location","href","linkTargetFullPath","URL","baseURI","startsWith","classList","add","button","flashMessage","closest","formFilters","querySelector","canSubmit","text","getElementsByTagName","textContent","start","getElementsByClassName","end","alert","disabled","nextElementSibling","formatDate","toLocaleString","parseDate","dateString","dateParts","split","$parcel$interopDefault","parentElement","matches","matchesSelector"],"version":3,"file":"torch.js.map"}
\ No newline at end of file