diff --git a/dashboard/static_src/scss/cards.scss b/dashboard/static_src/scss/cards.scss index 4c7de366..f5db55cf 100644 --- a/dashboard/static_src/scss/cards.scss +++ b/dashboard/static_src/scss/cards.scss @@ -1,18 +1,24 @@ +%card-header-text { + font-size: $h4-font-size; + font-weight: $headings-font-weight; + line-height: $headings-line-height; +} + .card-dashboard { - @extend .mb-3; + margin-bottom: $spacer; .card-header { - @extend .h4; + @extend %card-header-text; margin-bottom: 0; } .card-body { .card-title { - @extend .h4; + @extend %card-header-text; } .card-text { - @extend .text-muted; + color: $text-muted; } // Offset horizontal padding in dashboard cards with a carousel. @@ -26,14 +32,15 @@ } .card-diaperchange { - @extend .border-danger; + border-color: theme-color('danger'); .card-header, .card-header a { - @extend .text-white, .bg-danger; + background-color: theme-color('danger'); + color: theme-color('light'); } .card-body { - @extend .text-danger; + color: theme-color('danger'); } .progress { @@ -42,14 +49,15 @@ } .card-feeding { - @extend .border-primary; + border-color: theme-color('primary'); .card-header, .card-header a { - @extend .text-white, .bg-primary; + background-color: theme-color('primary'); + color: theme-color('light'); } .card-body { - @extend .text-primary; + color: theme-color('primary'); // Last feeding method header in card. .last-feeding-method { @@ -59,22 +67,28 @@ } .card-sleep { - @extend .border-secondary; + border-color: theme-color('secondary'); .card-header, .card-header a { - @extend .text-white, .bg-secondary; + background-color: theme-color('secondary'); + color: theme-color('light'); } } -.card-statistics { - @extend .border-light; +.card-statistics, .card-timer { + border-color: theme-color('light'); .card-header { - @extend .text-dark, .bg-light; + background-color: theme-color('light'); + color: theme-color('dark'); + + a { + color: theme-color('dark'); + } } .card-body { - @extend .text-light; + color: theme-color('light'); .container { padding: 0; @@ -82,26 +96,15 @@ } } -.card-timer { - @extend .border-light; - - .card-header, .card-header a { - @extend .text-dark, .bg-light; - } - - .card-body { - @extend .text-light; - } -} - .card-tummytime { - @extend .border-success; + border-color: theme-color('success'); .card-header, .card-header a { - @extend .text-white, .bg-success; + background-color: theme-color('success'); + color: theme-color('light'); } .card-body { - @extend .text-success; + color: theme-color('success'); } } diff --git a/static/babybuddy/css/app.311d874513fd.css.gz b/static/babybuddy/css/app.311d874513fd.css.gz deleted file mode 100644 index 96389ade..00000000 Binary files a/static/babybuddy/css/app.311d874513fd.css.gz and /dev/null differ diff --git a/static/babybuddy/css/app.css b/static/babybuddy/css/app.css index 14726bf0..d624fb46 100644 --- a/static/babybuddy/css/app.css +++ b/static/babybuddy/css/app.css @@ -353,7 +353,7 @@ template { } h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .card-dashboard .card-body .card-title, .card-dashboard .card-header, .h5, .h6 { +.h1, .h2, .h3, .h4, .h5, .h6 { margin-bottom: 0.5rem; font-weight: 500; line-height: 1.2; @@ -371,7 +371,7 @@ h3, .h3 { font-size: 1.75rem; } -h4, .h4, .card-dashboard .card-body .card-title, .card-dashboard .card-header { +h4, .h4 { font-size: 1.5rem; } @@ -6283,39 +6283,33 @@ a.close.disabled { vertical-align: text-top !important; } -.bg-primary, .card-feeding .card-header, .card-feeding .card-header a { +.bg-primary { background-color: #37abe9 !important; } -a.bg-primary:hover, .card-feeding a.card-header:hover, .card-feeding .card-header a:hover, a.bg-primary:focus, .card-feeding a.card-header:focus, .card-feeding .card-header a:focus, +a.bg-primary:hover, a.bg-primary:focus, button.bg-primary:hover, -.card-feeding button.card-header:hover, -button.bg-primary:focus, -.card-feeding button.card-header:focus { +button.bg-primary:focus { background-color: #1793d6 !important; } -.bg-secondary, .card-sleep .card-header, .card-sleep .card-header a { +.bg-secondary { background-color: #ff8f00 !important; } -a.bg-secondary:hover, .card-sleep a.card-header:hover, .card-sleep .card-header a:hover, a.bg-secondary:focus, .card-sleep a.card-header:focus, .card-sleep .card-header a:focus, +a.bg-secondary:hover, a.bg-secondary:focus, button.bg-secondary:hover, -.card-sleep button.card-header:hover, -button.bg-secondary:focus, -.card-sleep button.card-header:focus { +button.bg-secondary:focus { background-color: #cc7200 !important; } -.bg-success, .card-tummytime .card-header, .card-tummytime .card-header a { +.bg-success { background-color: #239556 !important; } -a.bg-success:hover, .card-tummytime a.card-header:hover, .card-tummytime .card-header a:hover, a.bg-success:focus, .card-tummytime a.card-header:focus, .card-tummytime .card-header a:focus, +a.bg-success:hover, a.bg-success:focus, button.bg-success:hover, -.card-tummytime button.card-header:hover, -button.bg-success:focus, -.card-tummytime button.card-header:focus { +button.bg-success:focus { background-color: #196c3e !important; } @@ -6339,29 +6333,23 @@ button.bg-warning:focus { background-color: #ffac0f !important; } -.bg-danger, .card-diaperchange .card-header, .card-diaperchange .card-header a { +.bg-danger { background-color: #a72431 !important; } -a.bg-danger:hover, .card-diaperchange a.card-header:hover, .card-diaperchange .card-header a:hover, a.bg-danger:focus, .card-diaperchange a.card-header:focus, .card-diaperchange .card-header a:focus, +a.bg-danger:hover, a.bg-danger:focus, button.bg-danger:hover, -.card-diaperchange button.card-header:hover, -button.bg-danger:focus, -.card-diaperchange button.card-header:focus { +button.bg-danger:focus { background-color: #7d1b25 !important; } -.bg-light, .card-timer .card-header, .card-timer .card-header a, .card-statistics .card-header { +.bg-light { background-color: #f8f9fa !important; } -a.bg-light:hover, .card-timer a.card-header:hover, .card-timer .card-header a:hover, .card-statistics a.card-header:hover, a.bg-light:focus, .card-timer a.card-header:focus, .card-timer .card-header a:focus, .card-statistics a.card-header:focus, +a.bg-light:hover, a.bg-light:focus, button.bg-light:hover, -.card-timer button.card-header:hover, -.card-statistics button.card-header:hover, -button.bg-light:focus, -.card-timer button.card-header:focus, -.card-statistics button.card-header:focus { +button.bg-light:focus { background-color: #dae0e5 !important; } @@ -6443,15 +6431,15 @@ button.bg-error:focus { border-left: 0 !important; } -.border-primary, .card-feeding { +.border-primary { border-color: #37abe9 !important; } -.border-secondary, .card-sleep { +.border-secondary { border-color: #ff8f00 !important; } -.border-success, .card-tummytime { +.border-success { border-color: #239556 !important; } @@ -6463,11 +6451,11 @@ button.bg-error:focus { border-color: #ffbe42 !important; } -.border-danger, .card-diaperchange { +.border-danger { border-color: #a72431 !important; } -.border-light, .card-timer, .card-statistics { +.border-light { border-color: #f8f9fa !important; } @@ -7814,7 +7802,7 @@ button.bg-error:focus { margin-right: 1rem !important; } -.mb-3, .card-dashboard, +.mb-3, .my-3 { margin-bottom: 1rem !important; } @@ -10026,15 +10014,15 @@ button.bg-error:focus { font-style: italic !important; } -.text-white, .card-tummytime .card-header, .card-tummytime .card-header a, .card-sleep .card-header, .card-sleep .card-header a, .card-feeding .card-header, .card-feeding .card-header a, .card-diaperchange .card-header, .card-diaperchange .card-header a { +.text-white { color: #fff !important; } -.text-primary, .card-feeding .card-body { +.text-primary { color: #37abe9 !important; } -a.text-primary:hover, .card-feeding a.card-body:hover, a.text-primary:focus, .card-feeding a.card-body:focus { +a.text-primary:hover, a.text-primary:focus { color: #1583bf !important; } @@ -10046,11 +10034,11 @@ a.text-secondary:hover, a.text-secondary:focus { color: #b36400 !important; } -.text-success, .card-tummytime .card-body { +.text-success { color: #239556 !important; } -a.text-success:hover, .card-tummytime a.card-body:hover, a.text-success:focus, .card-tummytime a.card-body:focus { +a.text-success:hover, a.text-success:focus { color: #145732 !important; } @@ -10070,27 +10058,27 @@ a.text-warning:hover, a.text-warning:focus { color: #f5a000 !important; } -.text-danger, .card-diaperchange .card-body { +.text-danger { color: #a72431 !important; } -a.text-danger:hover, .card-diaperchange a.card-body:hover, a.text-danger:focus, .card-diaperchange a.card-body:focus { +a.text-danger:hover, a.text-danger:focus { color: #68161f !important; } -.text-light, .card-timer .card-body, .card-statistics .card-body { +.text-light { color: #f8f9fa !important; } -a.text-light:hover, .card-timer a.card-body:hover, .card-statistics a.card-body:hover, a.text-light:focus, .card-timer a.card-body:focus, .card-statistics a.card-body:focus { +a.text-light:hover, a.text-light:focus { color: #cbd3da !important; } -.text-dark, .card-timer .card-header, .card-timer .card-header a, .card-statistics .card-header { +.text-dark { color: #343a40 !important; } -a.text-dark:hover, .card-timer a.card-header:hover, .card-timer .card-header a:hover, .card-statistics a.card-header:hover, a.text-dark:focus, .card-timer a.card-header:focus, .card-timer .card-header a:focus, .card-statistics a.card-header:focus { +a.text-dark:hover, a.text-dark:focus { color: #121416 !important; } @@ -10114,7 +10102,7 @@ a.text-error:hover, a.text-error:focus { color: #ced4da !important; } -.text-muted, .card-dashboard .card-body .card-text { +.text-muted { color: #6c757d !important; } @@ -10759,9 +10747,21 @@ h3 { font-size: 6rem; } } +.card-dashboard .card-body .card-title, .card-dashboard .card-header { + font-size: 1.5rem; + font-weight: 500; + line-height: 1.2; +} + +.card-dashboard { + margin-bottom: 1rem; +} .card-dashboard .card-header { margin-bottom: 0; } +.card-dashboard .card-body .card-text { + color: #6c757d; +} .card-dashboard .card-body .carousel { margin-left: -1.25rem; margin-right: -1.25rem; @@ -10769,18 +10769,70 @@ h3 { padding-right: 1.25rem; } +.card-diaperchange { + border-color: #a72431; +} +.card-diaperchange .card-header, .card-diaperchange .card-header a { + background-color: #a72431; + color: #f8f9fa; +} +.card-diaperchange .card-body { + color: #a72431; +} .card-diaperchange .progress { height: 2rem; } +.card-feeding { + border-color: #37abe9; +} +.card-feeding .card-header, .card-feeding .card-header a { + background-color: #37abe9; + color: #f8f9fa; +} +.card-feeding .card-body { + color: #37abe9; +} .card-feeding .card-body .last-feeding-method { font-size: 2em; } -.card-statistics .card-body .container { +.card-sleep { + border-color: #ff8f00; +} +.card-sleep .card-header, .card-sleep .card-header a { + background-color: #ff8f00; + color: #f8f9fa; +} + +.card-statistics, .card-timer { + border-color: #f8f9fa; +} +.card-statistics .card-header, .card-timer .card-header { + background-color: #f8f9fa; + color: #343a40; +} +.card-statistics .card-header a, .card-timer .card-header a { + color: #343a40; +} +.card-statistics .card-body, .card-timer .card-body { + color: #f8f9fa; +} +.card-statistics .card-body .container, .card-timer .card-body .container { padding: 0; } +.card-tummytime { + border-color: #239556; +} +.card-tummytime .card-header, .card-tummytime .card-header a { + background-color: #239556; + color: #f8f9fa; +} +.card-tummytime .card-body { + color: #239556; +} + .child-actions { flex-wrap: wrap; } diff --git a/static/babybuddy/css/app.css.gz b/static/babybuddy/css/app.css.gz index 04ea23dd..1b1d86c0 100644 Binary files a/static/babybuddy/css/app.css.gz and b/static/babybuddy/css/app.css.gz differ diff --git a/static/babybuddy/css/app.311d874513fd.css b/static/babybuddy/css/app.d83022714670.css similarity index 98% rename from static/babybuddy/css/app.311d874513fd.css rename to static/babybuddy/css/app.d83022714670.css index 42378e09..3b2a8b45 100644 --- a/static/babybuddy/css/app.311d874513fd.css +++ b/static/babybuddy/css/app.d83022714670.css @@ -353,7 +353,7 @@ template { } h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .card-dashboard .card-body .card-title, .card-dashboard .card-header, .h5, .h6 { +.h1, .h2, .h3, .h4, .h5, .h6 { margin-bottom: 0.5rem; font-weight: 500; line-height: 1.2; @@ -371,7 +371,7 @@ h3, .h3 { font-size: 1.75rem; } -h4, .h4, .card-dashboard .card-body .card-title, .card-dashboard .card-header { +h4, .h4 { font-size: 1.5rem; } @@ -6283,39 +6283,33 @@ a.close.disabled { vertical-align: text-top !important; } -.bg-primary, .card-feeding .card-header, .card-feeding .card-header a { +.bg-primary { background-color: #37abe9 !important; } -a.bg-primary:hover, .card-feeding a.card-header:hover, .card-feeding .card-header a:hover, a.bg-primary:focus, .card-feeding a.card-header:focus, .card-feeding .card-header a:focus, +a.bg-primary:hover, a.bg-primary:focus, button.bg-primary:hover, -.card-feeding button.card-header:hover, -button.bg-primary:focus, -.card-feeding button.card-header:focus { +button.bg-primary:focus { background-color: #1793d6 !important; } -.bg-secondary, .card-sleep .card-header, .card-sleep .card-header a { +.bg-secondary { background-color: #ff8f00 !important; } -a.bg-secondary:hover, .card-sleep a.card-header:hover, .card-sleep .card-header a:hover, a.bg-secondary:focus, .card-sleep a.card-header:focus, .card-sleep .card-header a:focus, +a.bg-secondary:hover, a.bg-secondary:focus, button.bg-secondary:hover, -.card-sleep button.card-header:hover, -button.bg-secondary:focus, -.card-sleep button.card-header:focus { +button.bg-secondary:focus { background-color: #cc7200 !important; } -.bg-success, .card-tummytime .card-header, .card-tummytime .card-header a { +.bg-success { background-color: #239556 !important; } -a.bg-success:hover, .card-tummytime a.card-header:hover, .card-tummytime .card-header a:hover, a.bg-success:focus, .card-tummytime a.card-header:focus, .card-tummytime .card-header a:focus, +a.bg-success:hover, a.bg-success:focus, button.bg-success:hover, -.card-tummytime button.card-header:hover, -button.bg-success:focus, -.card-tummytime button.card-header:focus { +button.bg-success:focus { background-color: #196c3e !important; } @@ -6339,29 +6333,23 @@ button.bg-warning:focus { background-color: #ffac0f !important; } -.bg-danger, .card-diaperchange .card-header, .card-diaperchange .card-header a { +.bg-danger { background-color: #a72431 !important; } -a.bg-danger:hover, .card-diaperchange a.card-header:hover, .card-diaperchange .card-header a:hover, a.bg-danger:focus, .card-diaperchange a.card-header:focus, .card-diaperchange .card-header a:focus, +a.bg-danger:hover, a.bg-danger:focus, button.bg-danger:hover, -.card-diaperchange button.card-header:hover, -button.bg-danger:focus, -.card-diaperchange button.card-header:focus { +button.bg-danger:focus { background-color: #7d1b25 !important; } -.bg-light, .card-timer .card-header, .card-timer .card-header a, .card-statistics .card-header { +.bg-light { background-color: #f8f9fa !important; } -a.bg-light:hover, .card-timer a.card-header:hover, .card-timer .card-header a:hover, .card-statistics a.card-header:hover, a.bg-light:focus, .card-timer a.card-header:focus, .card-timer .card-header a:focus, .card-statistics a.card-header:focus, +a.bg-light:hover, a.bg-light:focus, button.bg-light:hover, -.card-timer button.card-header:hover, -.card-statistics button.card-header:hover, -button.bg-light:focus, -.card-timer button.card-header:focus, -.card-statistics button.card-header:focus { +button.bg-light:focus { background-color: #dae0e5 !important; } @@ -6443,15 +6431,15 @@ button.bg-error:focus { border-left: 0 !important; } -.border-primary, .card-feeding { +.border-primary { border-color: #37abe9 !important; } -.border-secondary, .card-sleep { +.border-secondary { border-color: #ff8f00 !important; } -.border-success, .card-tummytime { +.border-success { border-color: #239556 !important; } @@ -6463,11 +6451,11 @@ button.bg-error:focus { border-color: #ffbe42 !important; } -.border-danger, .card-diaperchange { +.border-danger { border-color: #a72431 !important; } -.border-light, .card-timer, .card-statistics { +.border-light { border-color: #f8f9fa !important; } @@ -7814,7 +7802,7 @@ button.bg-error:focus { margin-right: 1rem !important; } -.mb-3, .card-dashboard, +.mb-3, .my-3 { margin-bottom: 1rem !important; } @@ -10026,15 +10014,15 @@ button.bg-error:focus { font-style: italic !important; } -.text-white, .card-tummytime .card-header, .card-tummytime .card-header a, .card-sleep .card-header, .card-sleep .card-header a, .card-feeding .card-header, .card-feeding .card-header a, .card-diaperchange .card-header, .card-diaperchange .card-header a { +.text-white { color: #fff !important; } -.text-primary, .card-feeding .card-body { +.text-primary { color: #37abe9 !important; } -a.text-primary:hover, .card-feeding a.card-body:hover, a.text-primary:focus, .card-feeding a.card-body:focus { +a.text-primary:hover, a.text-primary:focus { color: #1583bf !important; } @@ -10046,11 +10034,11 @@ a.text-secondary:hover, a.text-secondary:focus { color: #b36400 !important; } -.text-success, .card-tummytime .card-body { +.text-success { color: #239556 !important; } -a.text-success:hover, .card-tummytime a.card-body:hover, a.text-success:focus, .card-tummytime a.card-body:focus { +a.text-success:hover, a.text-success:focus { color: #145732 !important; } @@ -10070,27 +10058,27 @@ a.text-warning:hover, a.text-warning:focus { color: #f5a000 !important; } -.text-danger, .card-diaperchange .card-body { +.text-danger { color: #a72431 !important; } -a.text-danger:hover, .card-diaperchange a.card-body:hover, a.text-danger:focus, .card-diaperchange a.card-body:focus { +a.text-danger:hover, a.text-danger:focus { color: #68161f !important; } -.text-light, .card-timer .card-body, .card-statistics .card-body { +.text-light { color: #f8f9fa !important; } -a.text-light:hover, .card-timer a.card-body:hover, .card-statistics a.card-body:hover, a.text-light:focus, .card-timer a.card-body:focus, .card-statistics a.card-body:focus { +a.text-light:hover, a.text-light:focus { color: #cbd3da !important; } -.text-dark, .card-timer .card-header, .card-timer .card-header a, .card-statistics .card-header { +.text-dark { color: #343a40 !important; } -a.text-dark:hover, .card-timer a.card-header:hover, .card-timer .card-header a:hover, .card-statistics a.card-header:hover, a.text-dark:focus, .card-timer a.card-header:focus, .card-timer .card-header a:focus, .card-statistics a.card-header:focus { +a.text-dark:hover, a.text-dark:focus { color: #121416 !important; } @@ -10114,7 +10102,7 @@ a.text-error:hover, a.text-error:focus { color: #ced4da !important; } -.text-muted, .card-dashboard .card-body .card-text { +.text-muted { color: #6c757d !important; } @@ -10759,9 +10747,21 @@ h3 { font-size: 6rem; } } +.card-dashboard .card-body .card-title, .card-dashboard .card-header { + font-size: 1.5rem; + font-weight: 500; + line-height: 1.2; +} + +.card-dashboard { + margin-bottom: 1rem; +} .card-dashboard .card-header { margin-bottom: 0; } +.card-dashboard .card-body .card-text { + color: #6c757d; +} .card-dashboard .card-body .carousel { margin-left: -1.25rem; margin-right: -1.25rem; @@ -10769,18 +10769,70 @@ h3 { padding-right: 1.25rem; } +.card-diaperchange { + border-color: #a72431; +} +.card-diaperchange .card-header, .card-diaperchange .card-header a { + background-color: #a72431; + color: #f8f9fa; +} +.card-diaperchange .card-body { + color: #a72431; +} .card-diaperchange .progress { height: 2rem; } +.card-feeding { + border-color: #37abe9; +} +.card-feeding .card-header, .card-feeding .card-header a { + background-color: #37abe9; + color: #f8f9fa; +} +.card-feeding .card-body { + color: #37abe9; +} .card-feeding .card-body .last-feeding-method { font-size: 2em; } -.card-statistics .card-body .container { +.card-sleep { + border-color: #ff8f00; +} +.card-sleep .card-header, .card-sleep .card-header a { + background-color: #ff8f00; + color: #f8f9fa; +} + +.card-statistics, .card-timer { + border-color: #f8f9fa; +} +.card-statistics .card-header, .card-timer .card-header { + background-color: #f8f9fa; + color: #343a40; +} +.card-statistics .card-header a, .card-timer .card-header a { + color: #343a40; +} +.card-statistics .card-body, .card-timer .card-body { + color: #f8f9fa; +} +.card-statistics .card-body .container, .card-timer .card-body .container { padding: 0; } +.card-tummytime { + border-color: #239556; +} +.card-tummytime .card-header, .card-tummytime .card-header a { + background-color: #239556; + color: #f8f9fa; +} +.card-tummytime .card-body { + color: #239556; +} + .child-actions { flex-wrap: wrap; } diff --git a/static/babybuddy/css/app.d83022714670.css.gz b/static/babybuddy/css/app.d83022714670.css.gz new file mode 100644 index 00000000..93b10a6b Binary files /dev/null and b/static/babybuddy/css/app.d83022714670.css.gz differ diff --git a/static/babybuddy/js/graph.ff984369a341.js b/static/babybuddy/js/graph.c70d07f5822f.js similarity index 99% rename from static/babybuddy/js/graph.ff984369a341.js rename to static/babybuddy/js/graph.c70d07f5822f.js index ed523480..af27fcd2 100644 --- a/static/babybuddy/js/graph.ff984369a341.js +++ b/static/babybuddy/js/graph.c70d07f5822f.js @@ -1,5 +1,5 @@ /** -* plotly.js (cartesian) v2.6.0 +* plotly.js (cartesian) v2.6.3 * Copyright 2012-2021, Plotly, Inc. * All rights reserved. * Licensed under the MIT license @@ -31122,6 +31122,19 @@ function makeColorBarData(gd) { } function drawColorBar(g, opts, gd) { + var len = opts.len; + var lenmode = opts.lenmode; + var thickness = opts.thickness; + var thicknessmode = opts.thicknessmode; + var outlinewidth = opts.outlinewidth; + var borderwidth = opts.borderwidth; + var xanchor = opts.xanchor; + var yanchor = opts.yanchor; + var xpad = opts.xpad; + var ypad = opts.ypad; + var optsX = opts.x; + var optsY = opts.y; + var fullLayout = gd._fullLayout; var gs = fullLayout._size; @@ -31151,42 +31164,41 @@ function drawColorBar(g, opts, gd) { // when the colorbar itself is pushing the margins. // but then the fractional size is calculated based on the // actual graph size, so that the axes will size correctly. - var thickPx = Math.round(opts.thickness * (opts.thicknessmode === 'fraction' ? gs.w : 1)); + var thickPx = Math.round(thickness * (thicknessmode === 'fraction' ? gs.w : 1)); var thickFrac = thickPx / gs.w; - var lenPx = Math.round(opts.len * (opts.lenmode === 'fraction' ? gs.h : 1)); + var lenPx = Math.round(len * (lenmode === 'fraction' ? gs.h : 1)); var lenFrac = lenPx / gs.h; - var xpadFrac = opts.xpad / gs.w; - var yExtraPx = (opts.borderwidth + opts.outlinewidth) / 2; - var ypadFrac = opts.ypad / gs.h; + var xpadFrac = xpad / gs.w; + var yExtraPx = (borderwidth + outlinewidth) / 2; + var ypadFrac = ypad / gs.h; // x positioning: do it initially just for left anchor, // then fix at the end (since we don't know the width yet) - var xLeft = Math.round(opts.x * gs.w + opts.xpad); + var uPx = Math.round(optsX * gs.w + xpad); // for dragging... this is getting a little muddled... - var xLeftFrac = opts.x - thickFrac * ({center: 0.5, right: 1}[opts.xanchor] || 0); + var uFrac = optsX - thickFrac * ({center: 0.5, right: 1}[xanchor] || 0); // y positioning we can do correctly from the start - var yBottomFrac = opts.y + lenFrac * (({top: -0.5, bottom: 0.5}[opts.yanchor] || 0) - 0.5); - var yBottomPx = Math.round(gs.h * (1 - yBottomFrac)); - var yTopPx = yBottomPx - lenPx; + var vFrac = optsY + lenFrac * (({top: -0.5, bottom: 0.5}[yanchor] || 0) - 0.5); + var vPx = Math.round(gs.h * (1 - vFrac)); // stash a few things for makeEditable opts._lenFrac = lenFrac; opts._thickFrac = thickFrac; - opts._xLeftFrac = xLeftFrac; - opts._yBottomFrac = yBottomFrac; + opts._uFrac = uFrac; + opts._vFrac = vFrac; // stash mocked axis for contour label formatting var ax = opts._axis = mockColorBarAxis(gd, opts, zrange); // position can't go in through supplyDefaults // because that restricts it to [0,1] - ax.position = opts.x + xpadFrac + thickFrac; + ax.position = optsX + xpadFrac + thickFrac; if(['top', 'bottom'].indexOf(titleSide) !== -1) { ax.title.side = titleSide; - ax.titlex = opts.x + xpadFrac; - ax.titley = yBottomFrac + (title.side === 'top' ? lenFrac - ypadFrac : ypadFrac); + ax.titlex = optsX + xpadFrac; + ax.titley = vFrac + (title.side === 'top' ? lenFrac - ypadFrac : ypadFrac); } if(line.color && opts.tickmode === 'auto') { @@ -31194,7 +31206,7 @@ function drawColorBar(g, opts, gd) { ax.tick0 = levelsIn.start; var dtick = levelsIn.size; // expand if too many contours, so we don't get too many ticks - var autoNtick = Lib.constrain((yBottomPx - yTopPx) / 50, 4, 15) + 1; + var autoNtick = Lib.constrain(lenPx / 50, 4, 15) + 1; var dtFactor = (zrange[1] - zrange[0]) / ((opts.nticks || autoNtick) * dtick); if(dtFactor > 1) { var dtexp = Math.pow(10, Math.floor(Math.log(dtFactor) / Math.LN10)); @@ -31212,8 +31224,8 @@ function drawColorBar(g, opts, gd) { // set domain after init, because we may want to // allow it outside [0,1] ax.domain = [ - yBottomFrac + ypadFrac, - yBottomFrac + lenFrac - ypadFrac + vFrac + ypadFrac, + vFrac + lenFrac - ypadFrac ]; ax.setScale(); @@ -31254,15 +31266,15 @@ function drawColorBar(g, opts, gd) { // draw the title so we know how much room it needs // when we squish the axis. This one only applies to // top or bottom titles, not right side. - var x = gs.l + (opts.x + xpadFrac) * gs.w; + var x = gs.l + (optsX + xpadFrac) * gs.w; var fontSize = ax.title.font.size; var y; if(titleSide === 'top') { - y = (1 - (yBottomFrac + lenFrac - ypadFrac)) * gs.h + + y = (1 - (vFrac + lenFrac - ypadFrac)) * gs.h + gs.t + 3 + fontSize * 0.75; } else { - y = (1 - (yBottomFrac + ypadFrac)) * gs.h + + y = (1 - (vFrac + ypadFrac)) * gs.h + gs.t - 3 - fontSize * 0.25; } drawTitle(ax._id + 'title', { @@ -31301,7 +31313,7 @@ function drawColorBar(g, opts, gd) { // squish the axis top to make room for the title var titleGroup = g.select('.' + cn.cbtitle); var titleText = titleGroup.select('text'); - var titleTrans = [-opts.outlinewidth / 2, opts.outlinewidth / 2]; + var titleTrans = [-outlinewidth / 2, outlinewidth / 2]; var mathJaxNode = titleGroup .select('.h' + ax._id + 'title-math-group') .node(); @@ -31373,7 +31385,7 @@ function drawColorBar(g, opts, gd) { // Colorbar cannot currently support opacities so we // use an opaque fill even when alpha channels present var fillEl = d3.select(this).attr({ - x: xLeft, + x: uPx, width: Math.max(thickPx, 2), y: d3.min(z), height: Math.max(d3.max(z) - d3.min(z), 2), @@ -31397,7 +31409,7 @@ function drawColorBar(g, opts, gd) { lines.exit().remove(); lines.each(function(d) { d3.select(this) - .attr('d', 'M' + xLeft + ',' + + .attr('d', 'M' + uPx + ',' + (Math.round(ax.c2p(d)) + (line.width / 2) % 1) + 'h' + thickPx) .call(Drawing.lineGroupStyle, line.width, lineColormap(d), line.dash); }); @@ -31405,8 +31417,8 @@ function drawColorBar(g, opts, gd) { // force full redraw of labels and ticks axLayer.selectAll('g.' + ax._id + 'tick,path').remove(); - var shift = xLeft + thickPx + - (opts.outlinewidth || 0) / 2 - (opts.ticks === 'outside' ? 1 : 0); + var shift = uPx + thickPx + + (outlinewidth || 0) / 2 - (opts.ticks === 'outside' ? 1 : 0); var vals = Axes.calcTicks(ax); var tickSign = Axes.getTickSigns(ax)[2]; @@ -31431,9 +31443,9 @@ function drawColorBar(g, opts, gd) { // TODO: why are we redrawing multiple times now with this? // I guess autoMargin doesn't like being post-promise? function positionCB() { - var innerWidth = thickPx + opts.outlinewidth / 2; + var innerThickness = thickPx + outlinewidth / 2; if(ax.ticklabelposition.indexOf('inside') === -1) { - innerWidth += Drawing.bBox(axLayer.node()).width; + innerThickness += Drawing.bBox(axLayer.node()).width; } titleEl = titleCont.select('text'); @@ -31448,66 +31460,65 @@ function drawColorBar(g, opts, gd) { // (except for top/bottom mathjax, above) // but the weird gs.l is because the titleunshift // transform gets removed by Drawing.bBox - titleWidth = Drawing.bBox(titleCont.node()).right - xLeft - gs.l; + titleWidth = Drawing.bBox(titleCont.node()).right - uPx - gs.l; } - innerWidth = Math.max(innerWidth, titleWidth); + innerThickness = Math.max(innerThickness, titleWidth); } - var outerwidth = 2 * opts.xpad + innerWidth + opts.borderwidth + opts.outlinewidth / 2; - var outerheight = yBottomPx - yTopPx; + var outerThickness = 2 * xpad + innerThickness + borderwidth + outlinewidth / 2; g.select('.' + cn.cbbg).attr({ - x: xLeft - opts.xpad - (opts.borderwidth + opts.outlinewidth) / 2, - y: yTopPx - yExtraPx, - width: Math.max(outerwidth, 2), - height: Math.max(outerheight + 2 * yExtraPx, 2) + x: uPx - xpad - (borderwidth + outlinewidth) / 2, + y: vPx - lenPx - yExtraPx, + width: Math.max(outerThickness, 2), + height: Math.max(lenPx + 2 * yExtraPx, 2) }) .call(Color.fill, opts.bgcolor) .call(Color.stroke, opts.bordercolor) - .style('stroke-width', opts.borderwidth); + .style('stroke-width', borderwidth); g.selectAll('.' + cn.cboutline).attr({ - x: xLeft, - y: yTopPx + opts.ypad + (titleSide === 'top' ? titleHeight : 0), + x: uPx, + y: vPx - lenPx + ypad + (titleSide === 'top' ? titleHeight : 0), width: Math.max(thickPx, 2), - height: Math.max(outerheight - 2 * opts.ypad - titleHeight, 2) + height: Math.max(lenPx - 2 * ypad - titleHeight, 2) }) .call(Color.stroke, opts.outlinecolor) .style({ fill: 'none', - 'stroke-width': opts.outlinewidth + 'stroke-width': outlinewidth }); // fix positioning for xanchor!='left' - var xoffset = ({center: 0.5, right: 1}[opts.xanchor] || 0) * outerwidth; + var xoffset = ({center: 0.5, right: 1}[xanchor] || 0) * outerThickness; g.attr('transform', strTranslate(gs.l - xoffset, gs.t)); // auto margin adjustment var marginOpts = {}; - var tFrac = FROM_TL[opts.yanchor]; - var bFrac = FROM_BR[opts.yanchor]; - if(opts.lenmode === 'pixels') { - marginOpts.y = opts.y; - marginOpts.t = outerheight * tFrac; - marginOpts.b = outerheight * bFrac; + var tFrac = FROM_TL[yanchor]; + var bFrac = FROM_BR[yanchor]; + if(lenmode === 'pixels') { + marginOpts.y = optsY; + marginOpts.t = lenPx * tFrac; + marginOpts.b = lenPx * bFrac; } else { marginOpts.t = marginOpts.b = 0; - marginOpts.yt = opts.y + opts.len * tFrac; - marginOpts.yb = opts.y - opts.len * bFrac; + marginOpts.yt = optsY + len * tFrac; + marginOpts.yb = optsY - len * bFrac; } - var lFrac = FROM_TL[opts.xanchor]; - var rFrac = FROM_BR[opts.xanchor]; - if(opts.thicknessmode === 'pixels') { - marginOpts.x = opts.x; - marginOpts.l = outerwidth * lFrac; - marginOpts.r = outerwidth * rFrac; + var lFrac = FROM_TL[xanchor]; + var rFrac = FROM_BR[xanchor]; + if(thicknessmode === 'pixels') { + marginOpts.x = optsX; + marginOpts.l = outerThickness * lFrac; + marginOpts.r = outerThickness * rFrac; } else { - var extraThickness = outerwidth - thickPx; + var extraThickness = outerThickness - thickPx; marginOpts.l = extraThickness * lFrac; marginOpts.r = extraThickness * rFrac; - marginOpts.xl = opts.x - opts.thickness * lFrac; - marginOpts.xr = opts.x + opts.thickness * rFrac; + marginOpts.xl = optsX - thickness * lFrac; + marginOpts.xr = optsX + thickness * rFrac; } Plots.autoMargin(gd, opts._id, marginOpts); @@ -31538,9 +31549,9 @@ function makeEditable(g, opts, gd) { moveFn: function(dx, dy) { g.attr('transform', t0 + strTranslate(dx, dy)); - xf = dragElement.align(opts._xLeftFrac + (dx / gs.w), opts._thickFrac, + xf = dragElement.align(opts._uFrac + (dx / gs.w), opts._thickFrac, 0, 1, opts.xanchor); - yf = dragElement.align(opts._yBottomFrac - (dy / gs.h), opts._lenFrac, + yf = dragElement.align(opts._vFrac - (dy / gs.h), opts._lenFrac, 0, 1, opts.yanchor); var csr = dragElement.getCursor(xf, yf, opts.xanchor, opts.yanchor); @@ -36242,11 +36253,13 @@ var cartesianScatterPoints = { // The actual rendering is done by private function _hover. exports.hover = function hover(gd, evt, subplot, noHoverEvent) { gd = Lib.getGraphDiv(gd); - + // The 'target' property changes when bubbling out of Shadow DOM. + // Throttling can delay reading the target, so we save the current value. + var eventTarget = evt.target; Lib.throttle( gd._fullLayout._uid + constants.HOVERID, constants.HOVERMINTIME, - function() { _hover(gd, evt, subplot, noHoverEvent); } + function() { _hover(gd, evt, subplot, noHoverEvent, eventTarget); } ); }; @@ -36411,7 +36424,7 @@ exports.loneHover = function loneHover(hoverItems, opts) { }; // The actual implementation is here: -function _hover(gd, evt, subplot, noHoverEvent) { +function _hover(gd, evt, subplot, noHoverEvent, eventTarget) { if(!subplot) subplot = 'xy'; // if the user passed in an array of subplots, @@ -36530,7 +36543,7 @@ function _hover(gd, evt, subplot, noHoverEvent) { // [x|y]px: the pixels (from top left) of the mouse location // on the currently selected plot area // add pointerX|Y property for drawing the spikes in spikesnap 'cursor' situation - var hasUserCalledHover = !evt.target; + var hasUserCalledHover = !eventTarget; var xpx, ypx; if(hasUserCalledHover) { @@ -36547,13 +36560,7 @@ function _hover(gd, evt, subplot, noHoverEvent) { return; } - // Discover event target, traversing open shadow roots. - var target = evt.composedPath && evt.composedPath()[0]; - if(!target) { - // Fallback for browsers not supporting composedPath - target = evt.target; - } - var dbb = target.getBoundingClientRect(); + var dbb = eventTarget.getBoundingClientRect(); xpx = evt.clientX - dbb.left; ypx = evt.clientY - dbb.top; @@ -37001,15 +37008,15 @@ function _hover(gd, evt, subplot, noHoverEvent) { if(!helpers.isUnifiedHover(hovermode)) { hoverAvoidOverlaps(hoverLabels, rotateLabels ? 'xa' : 'ya', fullLayout); alignHoverText(hoverLabels, rotateLabels, fullLayout._invScaleX, fullLayout._invScaleY); - } // TODO: tagName hack is needed to appease geo.js's hack of using evt.target=true + } // TODO: tagName hack is needed to appease geo.js's hack of using eventTarget=true // we should improve the "fx" API so other plots can use it without these hack. - if(evt.target && evt.target.tagName) { + if(eventTarget && eventTarget.tagName) { var hasClickToShow = Registry.getComponentMethod('annotations', 'hasClickToShow')(gd, newhoverdata); - overrideCursor(d3.select(evt.target), hasClickToShow ? 'pointer' : ''); + overrideCursor(d3.select(eventTarget), hasClickToShow ? 'pointer' : ''); } // don't emit events if called manually - if(!evt.target || noHoverEvent || !hoverChanged(gd, evt, oldhoverdata)) return; + if(!eventTarget || noHoverEvent || !hoverChanged(gd, evt, oldhoverdata)) return; if(oldhoverdata) { gd.emit('plotly_unhover', { @@ -102149,7 +102156,7 @@ function getSortFunc(opts, d2c) { 'use strict'; // package version injected by `npm run preprocess` -exports.version = '2.6.0'; +exports.version = '2.6.3'; },{}]},{},[15])(15) }); diff --git a/static/babybuddy/js/graph.c70d07f5822f.js.gz b/static/babybuddy/js/graph.c70d07f5822f.js.gz new file mode 100644 index 00000000..10f2bea1 Binary files /dev/null and b/static/babybuddy/js/graph.c70d07f5822f.js.gz differ diff --git a/static/babybuddy/js/graph.ff984369a341.js.gz b/static/babybuddy/js/graph.ff984369a341.js.gz deleted file mode 100644 index b39e662a..00000000 Binary files a/static/babybuddy/js/graph.ff984369a341.js.gz and /dev/null differ diff --git a/static/babybuddy/js/graph.js b/static/babybuddy/js/graph.js index bd94fb56..0d8b924e 100644 --- a/static/babybuddy/js/graph.js +++ b/static/babybuddy/js/graph.js @@ -1,5 +1,5 @@ /** -* plotly.js (cartesian) v2.6.0 +* plotly.js (cartesian) v2.6.3 * Copyright 2012-2021, Plotly, Inc. * All rights reserved. * Licensed under the MIT license @@ -31122,6 +31122,19 @@ function makeColorBarData(gd) { } function drawColorBar(g, opts, gd) { + var len = opts.len; + var lenmode = opts.lenmode; + var thickness = opts.thickness; + var thicknessmode = opts.thicknessmode; + var outlinewidth = opts.outlinewidth; + var borderwidth = opts.borderwidth; + var xanchor = opts.xanchor; + var yanchor = opts.yanchor; + var xpad = opts.xpad; + var ypad = opts.ypad; + var optsX = opts.x; + var optsY = opts.y; + var fullLayout = gd._fullLayout; var gs = fullLayout._size; @@ -31151,42 +31164,41 @@ function drawColorBar(g, opts, gd) { // when the colorbar itself is pushing the margins. // but then the fractional size is calculated based on the // actual graph size, so that the axes will size correctly. - var thickPx = Math.round(opts.thickness * (opts.thicknessmode === 'fraction' ? gs.w : 1)); + var thickPx = Math.round(thickness * (thicknessmode === 'fraction' ? gs.w : 1)); var thickFrac = thickPx / gs.w; - var lenPx = Math.round(opts.len * (opts.lenmode === 'fraction' ? gs.h : 1)); + var lenPx = Math.round(len * (lenmode === 'fraction' ? gs.h : 1)); var lenFrac = lenPx / gs.h; - var xpadFrac = opts.xpad / gs.w; - var yExtraPx = (opts.borderwidth + opts.outlinewidth) / 2; - var ypadFrac = opts.ypad / gs.h; + var xpadFrac = xpad / gs.w; + var yExtraPx = (borderwidth + outlinewidth) / 2; + var ypadFrac = ypad / gs.h; // x positioning: do it initially just for left anchor, // then fix at the end (since we don't know the width yet) - var xLeft = Math.round(opts.x * gs.w + opts.xpad); + var uPx = Math.round(optsX * gs.w + xpad); // for dragging... this is getting a little muddled... - var xLeftFrac = opts.x - thickFrac * ({center: 0.5, right: 1}[opts.xanchor] || 0); + var uFrac = optsX - thickFrac * ({center: 0.5, right: 1}[xanchor] || 0); // y positioning we can do correctly from the start - var yBottomFrac = opts.y + lenFrac * (({top: -0.5, bottom: 0.5}[opts.yanchor] || 0) - 0.5); - var yBottomPx = Math.round(gs.h * (1 - yBottomFrac)); - var yTopPx = yBottomPx - lenPx; + var vFrac = optsY + lenFrac * (({top: -0.5, bottom: 0.5}[yanchor] || 0) - 0.5); + var vPx = Math.round(gs.h * (1 - vFrac)); // stash a few things for makeEditable opts._lenFrac = lenFrac; opts._thickFrac = thickFrac; - opts._xLeftFrac = xLeftFrac; - opts._yBottomFrac = yBottomFrac; + opts._uFrac = uFrac; + opts._vFrac = vFrac; // stash mocked axis for contour label formatting var ax = opts._axis = mockColorBarAxis(gd, opts, zrange); // position can't go in through supplyDefaults // because that restricts it to [0,1] - ax.position = opts.x + xpadFrac + thickFrac; + ax.position = optsX + xpadFrac + thickFrac; if(['top', 'bottom'].indexOf(titleSide) !== -1) { ax.title.side = titleSide; - ax.titlex = opts.x + xpadFrac; - ax.titley = yBottomFrac + (title.side === 'top' ? lenFrac - ypadFrac : ypadFrac); + ax.titlex = optsX + xpadFrac; + ax.titley = vFrac + (title.side === 'top' ? lenFrac - ypadFrac : ypadFrac); } if(line.color && opts.tickmode === 'auto') { @@ -31194,7 +31206,7 @@ function drawColorBar(g, opts, gd) { ax.tick0 = levelsIn.start; var dtick = levelsIn.size; // expand if too many contours, so we don't get too many ticks - var autoNtick = Lib.constrain((yBottomPx - yTopPx) / 50, 4, 15) + 1; + var autoNtick = Lib.constrain(lenPx / 50, 4, 15) + 1; var dtFactor = (zrange[1] - zrange[0]) / ((opts.nticks || autoNtick) * dtick); if(dtFactor > 1) { var dtexp = Math.pow(10, Math.floor(Math.log(dtFactor) / Math.LN10)); @@ -31212,8 +31224,8 @@ function drawColorBar(g, opts, gd) { // set domain after init, because we may want to // allow it outside [0,1] ax.domain = [ - yBottomFrac + ypadFrac, - yBottomFrac + lenFrac - ypadFrac + vFrac + ypadFrac, + vFrac + lenFrac - ypadFrac ]; ax.setScale(); @@ -31254,15 +31266,15 @@ function drawColorBar(g, opts, gd) { // draw the title so we know how much room it needs // when we squish the axis. This one only applies to // top or bottom titles, not right side. - var x = gs.l + (opts.x + xpadFrac) * gs.w; + var x = gs.l + (optsX + xpadFrac) * gs.w; var fontSize = ax.title.font.size; var y; if(titleSide === 'top') { - y = (1 - (yBottomFrac + lenFrac - ypadFrac)) * gs.h + + y = (1 - (vFrac + lenFrac - ypadFrac)) * gs.h + gs.t + 3 + fontSize * 0.75; } else { - y = (1 - (yBottomFrac + ypadFrac)) * gs.h + + y = (1 - (vFrac + ypadFrac)) * gs.h + gs.t - 3 - fontSize * 0.25; } drawTitle(ax._id + 'title', { @@ -31301,7 +31313,7 @@ function drawColorBar(g, opts, gd) { // squish the axis top to make room for the title var titleGroup = g.select('.' + cn.cbtitle); var titleText = titleGroup.select('text'); - var titleTrans = [-opts.outlinewidth / 2, opts.outlinewidth / 2]; + var titleTrans = [-outlinewidth / 2, outlinewidth / 2]; var mathJaxNode = titleGroup .select('.h' + ax._id + 'title-math-group') .node(); @@ -31373,7 +31385,7 @@ function drawColorBar(g, opts, gd) { // Colorbar cannot currently support opacities so we // use an opaque fill even when alpha channels present var fillEl = d3.select(this).attr({ - x: xLeft, + x: uPx, width: Math.max(thickPx, 2), y: d3.min(z), height: Math.max(d3.max(z) - d3.min(z), 2), @@ -31397,7 +31409,7 @@ function drawColorBar(g, opts, gd) { lines.exit().remove(); lines.each(function(d) { d3.select(this) - .attr('d', 'M' + xLeft + ',' + + .attr('d', 'M' + uPx + ',' + (Math.round(ax.c2p(d)) + (line.width / 2) % 1) + 'h' + thickPx) .call(Drawing.lineGroupStyle, line.width, lineColormap(d), line.dash); }); @@ -31405,8 +31417,8 @@ function drawColorBar(g, opts, gd) { // force full redraw of labels and ticks axLayer.selectAll('g.' + ax._id + 'tick,path').remove(); - var shift = xLeft + thickPx + - (opts.outlinewidth || 0) / 2 - (opts.ticks === 'outside' ? 1 : 0); + var shift = uPx + thickPx + + (outlinewidth || 0) / 2 - (opts.ticks === 'outside' ? 1 : 0); var vals = Axes.calcTicks(ax); var tickSign = Axes.getTickSigns(ax)[2]; @@ -31431,9 +31443,9 @@ function drawColorBar(g, opts, gd) { // TODO: why are we redrawing multiple times now with this? // I guess autoMargin doesn't like being post-promise? function positionCB() { - var innerWidth = thickPx + opts.outlinewidth / 2; + var innerThickness = thickPx + outlinewidth / 2; if(ax.ticklabelposition.indexOf('inside') === -1) { - innerWidth += Drawing.bBox(axLayer.node()).width; + innerThickness += Drawing.bBox(axLayer.node()).width; } titleEl = titleCont.select('text'); @@ -31448,66 +31460,65 @@ function drawColorBar(g, opts, gd) { // (except for top/bottom mathjax, above) // but the weird gs.l is because the titleunshift // transform gets removed by Drawing.bBox - titleWidth = Drawing.bBox(titleCont.node()).right - xLeft - gs.l; + titleWidth = Drawing.bBox(titleCont.node()).right - uPx - gs.l; } - innerWidth = Math.max(innerWidth, titleWidth); + innerThickness = Math.max(innerThickness, titleWidth); } - var outerwidth = 2 * opts.xpad + innerWidth + opts.borderwidth + opts.outlinewidth / 2; - var outerheight = yBottomPx - yTopPx; + var outerThickness = 2 * xpad + innerThickness + borderwidth + outlinewidth / 2; g.select('.' + cn.cbbg).attr({ - x: xLeft - opts.xpad - (opts.borderwidth + opts.outlinewidth) / 2, - y: yTopPx - yExtraPx, - width: Math.max(outerwidth, 2), - height: Math.max(outerheight + 2 * yExtraPx, 2) + x: uPx - xpad - (borderwidth + outlinewidth) / 2, + y: vPx - lenPx - yExtraPx, + width: Math.max(outerThickness, 2), + height: Math.max(lenPx + 2 * yExtraPx, 2) }) .call(Color.fill, opts.bgcolor) .call(Color.stroke, opts.bordercolor) - .style('stroke-width', opts.borderwidth); + .style('stroke-width', borderwidth); g.selectAll('.' + cn.cboutline).attr({ - x: xLeft, - y: yTopPx + opts.ypad + (titleSide === 'top' ? titleHeight : 0), + x: uPx, + y: vPx - lenPx + ypad + (titleSide === 'top' ? titleHeight : 0), width: Math.max(thickPx, 2), - height: Math.max(outerheight - 2 * opts.ypad - titleHeight, 2) + height: Math.max(lenPx - 2 * ypad - titleHeight, 2) }) .call(Color.stroke, opts.outlinecolor) .style({ fill: 'none', - 'stroke-width': opts.outlinewidth + 'stroke-width': outlinewidth }); // fix positioning for xanchor!='left' - var xoffset = ({center: 0.5, right: 1}[opts.xanchor] || 0) * outerwidth; + var xoffset = ({center: 0.5, right: 1}[xanchor] || 0) * outerThickness; g.attr('transform', strTranslate(gs.l - xoffset, gs.t)); // auto margin adjustment var marginOpts = {}; - var tFrac = FROM_TL[opts.yanchor]; - var bFrac = FROM_BR[opts.yanchor]; - if(opts.lenmode === 'pixels') { - marginOpts.y = opts.y; - marginOpts.t = outerheight * tFrac; - marginOpts.b = outerheight * bFrac; + var tFrac = FROM_TL[yanchor]; + var bFrac = FROM_BR[yanchor]; + if(lenmode === 'pixels') { + marginOpts.y = optsY; + marginOpts.t = lenPx * tFrac; + marginOpts.b = lenPx * bFrac; } else { marginOpts.t = marginOpts.b = 0; - marginOpts.yt = opts.y + opts.len * tFrac; - marginOpts.yb = opts.y - opts.len * bFrac; + marginOpts.yt = optsY + len * tFrac; + marginOpts.yb = optsY - len * bFrac; } - var lFrac = FROM_TL[opts.xanchor]; - var rFrac = FROM_BR[opts.xanchor]; - if(opts.thicknessmode === 'pixels') { - marginOpts.x = opts.x; - marginOpts.l = outerwidth * lFrac; - marginOpts.r = outerwidth * rFrac; + var lFrac = FROM_TL[xanchor]; + var rFrac = FROM_BR[xanchor]; + if(thicknessmode === 'pixels') { + marginOpts.x = optsX; + marginOpts.l = outerThickness * lFrac; + marginOpts.r = outerThickness * rFrac; } else { - var extraThickness = outerwidth - thickPx; + var extraThickness = outerThickness - thickPx; marginOpts.l = extraThickness * lFrac; marginOpts.r = extraThickness * rFrac; - marginOpts.xl = opts.x - opts.thickness * lFrac; - marginOpts.xr = opts.x + opts.thickness * rFrac; + marginOpts.xl = optsX - thickness * lFrac; + marginOpts.xr = optsX + thickness * rFrac; } Plots.autoMargin(gd, opts._id, marginOpts); @@ -31538,9 +31549,9 @@ function makeEditable(g, opts, gd) { moveFn: function(dx, dy) { g.attr('transform', t0 + strTranslate(dx, dy)); - xf = dragElement.align(opts._xLeftFrac + (dx / gs.w), opts._thickFrac, + xf = dragElement.align(opts._uFrac + (dx / gs.w), opts._thickFrac, 0, 1, opts.xanchor); - yf = dragElement.align(opts._yBottomFrac - (dy / gs.h), opts._lenFrac, + yf = dragElement.align(opts._vFrac - (dy / gs.h), opts._lenFrac, 0, 1, opts.yanchor); var csr = dragElement.getCursor(xf, yf, opts.xanchor, opts.yanchor); @@ -36242,11 +36253,13 @@ var cartesianScatterPoints = { // The actual rendering is done by private function _hover. exports.hover = function hover(gd, evt, subplot, noHoverEvent) { gd = Lib.getGraphDiv(gd); - + // The 'target' property changes when bubbling out of Shadow DOM. + // Throttling can delay reading the target, so we save the current value. + var eventTarget = evt.target; Lib.throttle( gd._fullLayout._uid + constants.HOVERID, constants.HOVERMINTIME, - function() { _hover(gd, evt, subplot, noHoverEvent); } + function() { _hover(gd, evt, subplot, noHoverEvent, eventTarget); } ); }; @@ -36411,7 +36424,7 @@ exports.loneHover = function loneHover(hoverItems, opts) { }; // The actual implementation is here: -function _hover(gd, evt, subplot, noHoverEvent) { +function _hover(gd, evt, subplot, noHoverEvent, eventTarget) { if(!subplot) subplot = 'xy'; // if the user passed in an array of subplots, @@ -36530,7 +36543,7 @@ function _hover(gd, evt, subplot, noHoverEvent) { // [x|y]px: the pixels (from top left) of the mouse location // on the currently selected plot area // add pointerX|Y property for drawing the spikes in spikesnap 'cursor' situation - var hasUserCalledHover = !evt.target; + var hasUserCalledHover = !eventTarget; var xpx, ypx; if(hasUserCalledHover) { @@ -36547,13 +36560,7 @@ function _hover(gd, evt, subplot, noHoverEvent) { return; } - // Discover event target, traversing open shadow roots. - var target = evt.composedPath && evt.composedPath()[0]; - if(!target) { - // Fallback for browsers not supporting composedPath - target = evt.target; - } - var dbb = target.getBoundingClientRect(); + var dbb = eventTarget.getBoundingClientRect(); xpx = evt.clientX - dbb.left; ypx = evt.clientY - dbb.top; @@ -37001,15 +37008,15 @@ function _hover(gd, evt, subplot, noHoverEvent) { if(!helpers.isUnifiedHover(hovermode)) { hoverAvoidOverlaps(hoverLabels, rotateLabels ? 'xa' : 'ya', fullLayout); alignHoverText(hoverLabels, rotateLabels, fullLayout._invScaleX, fullLayout._invScaleY); - } // TODO: tagName hack is needed to appease geo.js's hack of using evt.target=true + } // TODO: tagName hack is needed to appease geo.js's hack of using eventTarget=true // we should improve the "fx" API so other plots can use it without these hack. - if(evt.target && evt.target.tagName) { + if(eventTarget && eventTarget.tagName) { var hasClickToShow = Registry.getComponentMethod('annotations', 'hasClickToShow')(gd, newhoverdata); - overrideCursor(d3.select(evt.target), hasClickToShow ? 'pointer' : ''); + overrideCursor(d3.select(eventTarget), hasClickToShow ? 'pointer' : ''); } // don't emit events if called manually - if(!evt.target || noHoverEvent || !hoverChanged(gd, evt, oldhoverdata)) return; + if(!eventTarget || noHoverEvent || !hoverChanged(gd, evt, oldhoverdata)) return; if(oldhoverdata) { gd.emit('plotly_unhover', { @@ -102149,7 +102156,7 @@ function getSortFunc(opts, d2c) { 'use strict'; // package version injected by `npm run preprocess` -exports.version = '2.6.0'; +exports.version = '2.6.3'; },{}]},{},[15])(15) }); diff --git a/static/babybuddy/js/graph.js.gz b/static/babybuddy/js/graph.js.gz index b39e662a..10f2bea1 100644 Binary files a/static/babybuddy/js/graph.js.gz and b/static/babybuddy/js/graph.js.gz differ diff --git a/static/babybuddy/js/vendor.4d0ef935d089.js b/static/babybuddy/js/vendor.f939b61597b3.js similarity index 99% rename from static/babybuddy/js/vendor.4d0ef935d089.js rename to static/babybuddy/js/vendor.f939b61597b3.js index 1e79ce3d..8bc59854 100644 --- a/static/babybuddy/js/vendor.4d0ef935d089.js +++ b/static/babybuddy/js/vendor.f939b61597b3.js @@ -25144,7 +25144,7 @@ return Popper; }))); //! moment-timezone.js -//! version : 0.5.33 +//! version : 0.5.34 //! Copyright (c) JS Foundation and other contributors //! license : MIT //! github.com/moment/moment-timezone @@ -25174,7 +25174,7 @@ return Popper; // return moment; // } - var VERSION = "0.5.33", + var VERSION = "0.5.34", zones = {}, links = {}, countries = {}, @@ -25836,7 +25836,7 @@ return Popper; } loadData({ - "version": "2021a", + "version": "2021e", "zones": [ "Africa/Abidjan|GMT|0|0||48e5", "Africa/Nairobi|EAT|-30|0||47e5", @@ -25892,7 +25892,7 @@ return Popper; "Asia/Baghdad|+03|-30|0||66e5", "Antarctica/Troll|+00 +02|0 -20|01010101010101010101010|1QyN0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|40", "Asia/Dhaka|+06|-60|0||16e6", - "Asia/Amman|EET EEST|-20 -30|01010101010101010101010|1QAK0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5", + "Asia/Amman|EET EEST|-20 -30|01010101010101010101010|1QAK0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 LA0 1C00 LA0 1C00 Oo0 1zc0 Oo0 1C00 LA0 1C00|25e5", "Asia/Kamchatka|+12|-c0|0||18e4", "Asia/Dubai|+04|-40|0||39e5", "Asia/Barnaul|+06 +07|-60 -70|01|1QyI0|", @@ -25906,7 +25906,7 @@ return Popper; "Asia/Damascus|EET EEST|-20 -30|01010101010101010101010|1QxW0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5", "Asia/Yakutsk|+09|-90|0||28e4", "Asia/Famagusta|EET EEST +03|-20 -30 -30|0120101010101010101010|1QyN0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|", - "Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|1Qyn0 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|18e5", + "Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|1Qyn0 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0|18e5", "Asia/Hong_Kong|HKT|-80|0||73e5", "Asia/Hovd|+07 +08|-70 -80|010|1Qyj0 1cJ0|81e3", "Europe/Istanbul|EET EEST +03|-20 -30 -30|012|1QyN0 15w0|13e6", @@ -25961,8 +25961,8 @@ return Popper; "Pacific/Honolulu|HST|a0|0||37e4", "MET|MET MEST|-10 -20|01010101010101010101010|1QyN0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|", "Pacific/Chatham|+1345 +1245|-dJ -cJ|01010101010101010101010|1QBq0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00|600", - "Pacific/Apia|+14 +13|-e0 -d0|01010101010101010101010|1QBq0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00|37e3", - "Pacific/Fiji|+13 +12|-d0 -c0|01010101010101010101010|1Q6C0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0|88e4", + "Pacific/Apia|+14 +13|-e0 -d0|010101010101|1QBq0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0|37e3", + "Pacific/Fiji|+13 +12|-d0 -c0|010101010101010101010|1Q6C0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0 4q00 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0|88e4", "Pacific/Guam|ChST|-a0|0||17e4", "Pacific/Marquesas|-0930|9u|0||86e2", "Pacific/Pago_Pago|SST|b0|0||37e2", @@ -26419,6 +26419,7 @@ return Popper; "Pacific/Easter|Chile/EasterIsland", "Pacific/Fakaofo|Etc/GMT-13", "Pacific/Fakaofo|Pacific/Enderbury", + "Pacific/Fakaofo|Pacific/Kanton", "Pacific/Galapagos|Etc/GMT+6", "Pacific/Gambier|Etc/GMT+9", "Pacific/Guam|Pacific/Saipan", @@ -26447,7 +26448,7 @@ return Popper; "AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia", "AS|Pacific/Pago_Pago", "AT|Europe/Vienna", - "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla", + "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla", "AW|America/Curacao America/Aruba", "AX|Europe/Helsinki Europe/Mariehamn", "AZ|Asia/Baku", @@ -26471,7 +26472,7 @@ return Popper; "BW|Africa/Maputo Africa/Gaborone", "BY|Europe/Minsk", "BZ|America/Belize", - "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson", + "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Whitehorse America/Dawson America/Vancouver", "CC|Indian/Cocos", "CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi", "CF|Africa/Lagos Africa/Bangui", @@ -26623,7 +26624,7 @@ return Popper; "RE|Indian/Reunion", "RO|Europe/Bucharest", "RS|Europe/Belgrade", - "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr", + "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Volgograd Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr", "RW|Africa/Maputo Africa/Kigali", "SA|Asia/Riyadh", "SB|Pacific/Guadalcanal", diff --git a/static/babybuddy/js/vendor.4d0ef935d089.js.gz b/static/babybuddy/js/vendor.f939b61597b3.js.gz similarity index 88% rename from static/babybuddy/js/vendor.4d0ef935d089.js.gz rename to static/babybuddy/js/vendor.f939b61597b3.js.gz index 5fa3d930..29aab094 100644 Binary files a/static/babybuddy/js/vendor.4d0ef935d089.js.gz and b/static/babybuddy/js/vendor.f939b61597b3.js.gz differ diff --git a/static/babybuddy/js/vendor.js b/static/babybuddy/js/vendor.js index 7f48e040..4f4ab037 100644 --- a/static/babybuddy/js/vendor.js +++ b/static/babybuddy/js/vendor.js @@ -25144,7 +25144,7 @@ return Popper; }))); //! moment-timezone.js -//! version : 0.5.33 +//! version : 0.5.34 //! Copyright (c) JS Foundation and other contributors //! license : MIT //! github.com/moment/moment-timezone @@ -25174,7 +25174,7 @@ return Popper; // return moment; // } - var VERSION = "0.5.33", + var VERSION = "0.5.34", zones = {}, links = {}, countries = {}, @@ -25836,7 +25836,7 @@ return Popper; } loadData({ - "version": "2021a", + "version": "2021e", "zones": [ "Africa/Abidjan|GMT|0|0||48e5", "Africa/Nairobi|EAT|-30|0||47e5", @@ -25892,7 +25892,7 @@ return Popper; "Asia/Baghdad|+03|-30|0||66e5", "Antarctica/Troll|+00 +02|0 -20|01010101010101010101010|1QyN0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|40", "Asia/Dhaka|+06|-60|0||16e6", - "Asia/Amman|EET EEST|-20 -30|01010101010101010101010|1QAK0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5", + "Asia/Amman|EET EEST|-20 -30|01010101010101010101010|1QAK0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 LA0 1C00 LA0 1C00 Oo0 1zc0 Oo0 1C00 LA0 1C00|25e5", "Asia/Kamchatka|+12|-c0|0||18e4", "Asia/Dubai|+04|-40|0||39e5", "Asia/Barnaul|+06 +07|-60 -70|01|1QyI0|", @@ -25906,7 +25906,7 @@ return Popper; "Asia/Damascus|EET EEST|-20 -30|01010101010101010101010|1QxW0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5", "Asia/Yakutsk|+09|-90|0||28e4", "Asia/Famagusta|EET EEST +03|-20 -30 -30|0120101010101010101010|1QyN0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|", - "Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|1Qyn0 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|18e5", + "Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|1Qyn0 1qL0 WN0 1qL0 WN0 1qL0 11c0 1on0 11B0 1o00 11A0 1qo0 Xc0 1qo0 Xc0 1qo0 1200 1nA0 1200 1qo0 Xc0 1qo0|18e5", "Asia/Hong_Kong|HKT|-80|0||73e5", "Asia/Hovd|+07 +08|-70 -80|010|1Qyj0 1cJ0|81e3", "Europe/Istanbul|EET EEST +03|-20 -30 -30|012|1QyN0 15w0|13e6", @@ -25961,8 +25961,8 @@ return Popper; "Pacific/Honolulu|HST|a0|0||37e4", "MET|MET MEST|-10 -20|01010101010101010101010|1QyN0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|", "Pacific/Chatham|+1345 +1245|-dJ -cJ|01010101010101010101010|1QBq0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00|600", - "Pacific/Apia|+14 +13|-e0 -d0|01010101010101010101010|1QBq0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00|37e3", - "Pacific/Fiji|+13 +12|-d0 -c0|01010101010101010101010|1Q6C0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0|88e4", + "Pacific/Apia|+14 +13|-e0 -d0|010101010101|1QBq0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0|37e3", + "Pacific/Fiji|+13 +12|-d0 -c0|010101010101010101010|1Q6C0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 2hc0 bc0 4q00 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0|88e4", "Pacific/Guam|ChST|-a0|0||17e4", "Pacific/Marquesas|-0930|9u|0||86e2", "Pacific/Pago_Pago|SST|b0|0||37e2", @@ -26419,6 +26419,7 @@ return Popper; "Pacific/Easter|Chile/EasterIsland", "Pacific/Fakaofo|Etc/GMT-13", "Pacific/Fakaofo|Pacific/Enderbury", + "Pacific/Fakaofo|Pacific/Kanton", "Pacific/Galapagos|Etc/GMT+6", "Pacific/Gambier|Etc/GMT+9", "Pacific/Guam|Pacific/Saipan", @@ -26447,7 +26448,7 @@ return Popper; "AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia", "AS|Pacific/Pago_Pago", "AT|Europe/Vienna", - "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla", + "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla", "AW|America/Curacao America/Aruba", "AX|Europe/Helsinki Europe/Mariehamn", "AZ|Asia/Baku", @@ -26471,7 +26472,7 @@ return Popper; "BW|Africa/Maputo Africa/Gaborone", "BY|Europe/Minsk", "BZ|America/Belize", - "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson", + "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Whitehorse America/Dawson America/Vancouver", "CC|Indian/Cocos", "CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi", "CF|Africa/Lagos Africa/Bangui", @@ -26623,7 +26624,7 @@ return Popper; "RE|Indian/Reunion", "RO|Europe/Bucharest", "RS|Europe/Belgrade", - "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr", + "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Volgograd Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr", "RW|Africa/Maputo Africa/Kigali", "SA|Asia/Riyadh", "SB|Pacific/Guadalcanal", diff --git a/static/babybuddy/js/vendor.js.gz b/static/babybuddy/js/vendor.js.gz index 5fa3d930..29aab094 100644 Binary files a/static/babybuddy/js/vendor.js.gz and b/static/babybuddy/js/vendor.js.gz differ diff --git a/static/staticfiles.json b/static/staticfiles.json index 2fd2c28f..17899b11 100644 --- a/static/staticfiles.json +++ b/static/staticfiles.json @@ -1 +1 @@ -{"paths": {"admin/js/vendor/select2/i18n/bg.js": "admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js", "admin/js/vendor/select2/i18n/en.js": "admin/js/vendor/select2/i18n/en.cf932ba09a98.js", "admin/js/vendor/select2/i18n/lt.js": "admin/js/vendor/select2/i18n/lt.23c7ce903300.js", "admin/js/vendor/select2/i18n/zh-TW.js": "admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js", "admin/js/vendor/select2/i18n/is.js": "admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js", "admin/js/vendor/select2/i18n/vi.js": "admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js", "admin/js/vendor/select2/i18n/sk.js": "admin/js/vendor/select2/i18n/sk.33d02cef8d11.js", "admin/js/vendor/select2/i18n/cs.js": "admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js", "admin/js/vendor/select2/i18n/ps.js": "admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js", "admin/js/vendor/select2/i18n/hy.js": "admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js", "admin/js/vendor/select2/i18n/eu.js": "admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js", "admin/js/vendor/select2/i18n/nl.js": "admin/js/vendor/select2/i18n/nl.997868a37ed8.js", "admin/js/vendor/select2/i18n/tk.js": "admin/js/vendor/select2/i18n/tk.7c572a68c78f.js", "admin/js/vendor/select2/i18n/sr-Cyrl.js": "admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js", "admin/js/vendor/select2/i18n/az.js": "admin/js/vendor/select2/i18n/az.270c257daf81.js", "admin/js/vendor/select2/i18n/he.js": "admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js", "admin/js/vendor/select2/i18n/af.js": "admin/js/vendor/select2/i18n/af.4f6fcd73488c.js", "admin/js/vendor/select2/i18n/ms.js": "admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js", "admin/js/vendor/select2/i18n/uk.js": "admin/js/vendor/select2/i18n/uk.8cede7f4803c.js", "admin/js/vendor/select2/i18n/sr.js": "admin/js/vendor/select2/i18n/sr.5ed85a48f483.js", "admin/js/vendor/select2/i18n/sv.js": "admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js", "admin/js/vendor/select2/i18n/es.js": "admin/js/vendor/select2/i18n/es.66dbc2652fb1.js", "admin/js/vendor/select2/i18n/ka.js": "admin/js/vendor/select2/i18n/ka.2083264a54f0.js", "admin/js/vendor/select2/i18n/dsb.js": "admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js", "admin/js/vendor/select2/i18n/hi.js": "admin/js/vendor/select2/i18n/hi.70640d41628f.js", "admin/js/vendor/select2/i18n/tr.js": "admin/js/vendor/select2/i18n/tr.b5a0643d1545.js", "admin/js/vendor/select2/i18n/ne.js": "admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js", "admin/js/vendor/select2/i18n/ru.js": "admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js", "admin/js/vendor/select2/i18n/sl.js": "admin/js/vendor/select2/i18n/sl.131a78bc0752.js", "admin/js/vendor/select2/i18n/hsb.js": "admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js", "admin/js/vendor/select2/i18n/id.js": "admin/js/vendor/select2/i18n/id.04debded514d.js", "admin/js/vendor/select2/i18n/de.js": "admin/js/vendor/select2/i18n/de.8a1c222b0204.js", "admin/js/vendor/select2/i18n/bs.js": "admin/js/vendor/select2/i18n/bs.91624382358e.js", "admin/js/vendor/select2/i18n/th.js": "admin/js/vendor/select2/i18n/th.f38c20b0221b.js", "admin/js/vendor/select2/i18n/mk.js": "admin/js/vendor/select2/i18n/mk.dabbb9087130.js", "admin/js/vendor/select2/i18n/zh-CN.js": "admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js", "admin/js/vendor/select2/i18n/km.js": "admin/js/vendor/select2/i18n/km.c23089cb06ca.js", "admin/js/vendor/select2/i18n/ca.js": "admin/js/vendor/select2/i18n/ca.a166b745933a.js", "admin/js/vendor/select2/i18n/hr.js": "admin/js/vendor/select2/i18n/hr.a2b092cc1147.js", "admin/js/vendor/select2/i18n/ar.js": "admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js", "admin/js/vendor/select2/i18n/pl.js": "admin/js/vendor/select2/i18n/pl.6031b4f16452.js", "admin/js/vendor/select2/i18n/pt.js": "admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js", "admin/js/vendor/select2/i18n/hu.js": "admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js", "admin/js/vendor/select2/i18n/ja.js": "admin/js/vendor/select2/i18n/ja.170ae885d74f.js", "admin/js/vendor/select2/i18n/fr.js": "admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js", "admin/js/vendor/select2/i18n/ko.js": "admin/js/vendor/select2/i18n/ko.e7be6c20e673.js", "admin/js/vendor/select2/i18n/el.js": "admin/js/vendor/select2/i18n/el.27097f071856.js", "admin/js/vendor/select2/i18n/fi.js": "admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js", "admin/js/vendor/select2/i18n/da.js": "admin/js/vendor/select2/i18n/da.766346afe4dd.js", "admin/js/vendor/select2/i18n/gl.js": "admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js", "admin/js/vendor/select2/i18n/lv.js": "admin/js/vendor/select2/i18n/lv.08e62128eac1.js", "admin/js/vendor/select2/i18n/ro.js": "admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js", "admin/js/vendor/select2/i18n/it.js": "admin/js/vendor/select2/i18n/it.be4fe8d365b5.js", "admin/js/vendor/select2/i18n/fa.js": "admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js", "admin/js/vendor/select2/i18n/nb.js": "admin/js/vendor/select2/i18n/nb.da2fce143f27.js", "admin/js/vendor/select2/i18n/pt-BR.js": "admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js", "admin/js/vendor/select2/i18n/bn.js": "admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js", "admin/js/vendor/select2/i18n/sq.js": "admin/js/vendor/select2/i18n/sq.5636b60d29c9.js", "admin/js/vendor/select2/i18n/et.js": "admin/js/vendor/select2/i18n/et.2b96fd98289d.js", "admin/js/vendor/xregexp/xregexp.min.js": "admin/js/vendor/xregexp/xregexp.min.b0439563a5d3.js", "admin/js/vendor/xregexp/xregexp.js": "admin/js/vendor/xregexp/xregexp.efda034b9537.js", "admin/js/vendor/xregexp/LICENSE.txt": "admin/js/vendor/xregexp/LICENSE.bf79e414957a.txt", "admin/js/vendor/select2/LICENSE.md": "admin/js/vendor/select2/LICENSE.f94142512c91.md", "admin/js/vendor/select2/select2.full.js": "admin/js/vendor/select2/select2.full.c2afdeda3058.js", "admin/js/vendor/select2/select2.full.min.js": "admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js", "admin/js/vendor/jquery/jquery.min.js": "admin/js/vendor/jquery/jquery.min.dc5e7f18c8d3.js", "admin/js/vendor/jquery/jquery.js": "admin/js/vendor/jquery/jquery.23c7c5d2d131.js", "admin/js/vendor/jquery/LICENSE.txt": "admin/js/vendor/jquery/LICENSE.75308107741f.txt", "admin/css/vendor/select2/select2.css": "admin/css/vendor/select2/select2.a2194c262648.css", "admin/css/vendor/select2/LICENSE-SELECT2.md": "admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md", "admin/css/vendor/select2/select2.min.css": "admin/css/vendor/select2/select2.min.9f54e6414f87.css", "babybuddy/img/core/child-placeholder.png": "babybuddy/img/core/child-placeholder.7c0a81f0d7f0.png", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.c9743eab7a4f.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.3208b6cc4466.css", "admin/js/admin/RelatedObjectLookups.js": "admin/js/admin/RelatedObjectLookups.b4d76b6aaf0b.js", "admin/js/admin/DateTimeShortcuts.js": "admin/js/admin/DateTimeShortcuts.5548f99471bf.js", "admin/img/gis/move_vertex_off.svg": "admin/img/gis/move_vertex_off.7a23bf31ef8a.svg", "admin/img/gis/move_vertex_on.svg": "admin/img/gis/move_vertex_on.0047eba25b67.svg", "babybuddy/font/babybuddy.svg": "babybuddy/font/babybuddy.92b0e8730a39.svg", "babybuddy/font/babybuddy.ttf": "babybuddy/font/babybuddy.5b508a0e4073.ttf", "babybuddy/font/babybuddy.woff": "babybuddy/font/babybuddy.ecc1b92002b6.woff", "babybuddy/font/babybuddy.eot": "babybuddy/font/babybuddy.62cc646af202.eot", "babybuddy/font/babybuddy.woff2": "babybuddy/font/babybuddy.34582a429c60.woff2", "babybuddy/logo/icon-brand.png": "babybuddy/logo/icon-brand.32cbedf6aee3.png", "babybuddy/logo/icon.png": "babybuddy/logo/icon.df80640f0465.png", "babybuddy/logo/logo.png": "babybuddy/logo/logo.62870041cc83.png", "babybuddy/js/graph.js": "babybuddy/js/graph.ff984369a341.js", "babybuddy/js/app.js": "babybuddy/js/app.6477a025d778.js", "babybuddy/js/vendor.js": "babybuddy/js/vendor.4d0ef935d089.js", "babybuddy/root/favicon.svg": "babybuddy/root/favicon.12fe726d0bac.svg", "babybuddy/css/app.css": "babybuddy/css/app.311d874513fd.css", "rest_framework/js/jquery-3.5.1.min.js": "rest_framework/js/jquery-3.5.1.min.dc5e7f18c8d3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.969930007329.js", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.0ea6e6052ab5.js", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.46ed116b0edd.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.66b84a04375e.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.77017a69879a.css", "admin/js/SelectFilter2.js": "admin/js/SelectFilter2.d250dcb52a9a.js", "admin/js/popup_response.js": "admin/js/popup_response.c6cc78ea5551.js", "admin/js/prepopulate_init.js": "admin/js/prepopulate_init.e056047b7a7e.js", "admin/js/jquery.init.js": "admin/js/jquery.init.b7781a0897fc.js", "admin/js/nav_sidebar.js": "admin/js/nav_sidebar.7605597ddf52.js", "admin/js/prepopulate.js": "admin/js/prepopulate.bd2361dfd64d.js", "admin/js/SelectBox.js": "admin/js/SelectBox.8161741c7647.js", "admin/js/core.js": "admin/js/core.ccd84108ec57.js", "admin/js/cancel.js": "admin/js/cancel.ecc4c5ca7b32.js", "admin/js/change_form.js": "admin/js/change_form.9d8ca4f96b75.js", "admin/js/collapse.js": "admin/js/collapse.f84e7410290f.js", "admin/js/autocomplete.js": "admin/js/autocomplete.b6b77d0e5906.js", "admin/js/urlify.js": "admin/js/urlify.25cc3eac8123.js", "admin/js/actions.js": "admin/js/actions.a6d23e8853fd.js", "admin/js/calendar.js": "admin/js/calendar.f8a5d055eb33.js", "admin/js/inlines.js": "admin/js/inlines.7596b7fd289e.js", "admin/fonts/README.txt": "admin/fonts/README.ab99e6b541ea.txt", "admin/fonts/Roboto-Light-webfont.woff": "admin/fonts/Roboto-Light-webfont.c73eb1ceba33.woff", "admin/fonts/Roboto-Regular-webfont.woff": "admin/fonts/Roboto-Regular-webfont.35b07eb2f871.woff", "admin/fonts/Roboto-Bold-webfont.woff": "admin/fonts/Roboto-Bold-webfont.50d75e48e0a3.woff", "admin/fonts/LICENSE.txt": "admin/fonts/LICENSE.d273d63619c9.txt", "admin/img/README.txt": "admin/img/README.a70711a38d87.txt", "admin/img/icon-alert.svg": "admin/img/icon-alert.034cc7d8a67f.svg", "admin/img/tooltag-add.svg": "admin/img/tooltag-add.e59d620a9742.svg", "admin/img/icon-calendar.svg": "admin/img/icon-calendar.ac7aea671bea.svg", "admin/img/calendar-icons.svg": "admin/img/calendar-icons.39b290681a8b.svg", "admin/img/icon-addlink.svg": "admin/img/icon-addlink.d519b3bab011.svg", "admin/img/icon-deletelink.svg": "admin/img/icon-deletelink.564ef9dc3854.svg", "admin/img/icon-clock.svg": "admin/img/icon-clock.e1d4dfac3f2b.svg", "admin/img/tooltag-arrowright.svg": "admin/img/tooltag-arrowright.bbfb788a849e.svg", "admin/img/icon-unknown-alt.svg": "admin/img/icon-unknown-alt.81536e128bb6.svg", "admin/img/selector-icons.svg": "admin/img/selector-icons.b4555096cea2.svg", "admin/img/LICENSE": "admin/img/LICENSE.2c54f4e1ca1c", "admin/img/icon-unknown.svg": "admin/img/icon-unknown.a18cb4398978.svg", "admin/img/icon-changelink.svg": "admin/img/icon-changelink.18d2fd706348.svg", "admin/img/search.svg": "admin/img/search.7cf54ff789c6.svg", "admin/img/sorting-icons.svg": "admin/img/sorting-icons.3a097b59f104.svg", "admin/img/icon-no.svg": "admin/img/icon-no.439e821418cd.svg", "admin/img/inline-delete.svg": "admin/img/inline-delete.fec1b761f254.svg", "admin/img/icon-yes.svg": "admin/img/icon-yes.d2f9f035226a.svg", "admin/img/icon-viewlink.svg": "admin/img/icon-viewlink.41eb31f7826e.svg", "admin/css/dashboard.css": "admin/css/dashboard.be83f13e4369.css", "admin/css/base.css": "admin/css/base.1f418065fc2c.css", "admin/css/widgets.css": "admin/css/widgets.694d845b2cb1.css", "admin/css/responsive.css": "admin/css/responsive.b128bdf0edef.css", "admin/css/autocomplete.css": "admin/css/autocomplete.4a81fc4242d0.css", "admin/css/fonts.css": "admin/css/fonts.168bab448fee.css", "admin/css/nav_sidebar.css": "admin/css/nav_sidebar.0fd434145f4d.css", "admin/css/changelists.css": "admin/css/changelists.c70d77c47e69.css", "admin/css/forms.css": "admin/css/forms.1d89ec6432f5.css", "admin/css/responsive_rtl.css": "admin/css/responsive_rtl.e13ae754cceb.css", "admin/css/rtl.css": "admin/css/rtl.4bc23eb90919.css", "admin/css/login.css": "admin/css/login.c35adf41bb6e.css", "import_export/action_formats.js": "import_export/action_formats.11c3e817b80a.js", "import_export/import.css": "import_export/import.87299a479910.css"}, "version": "1.0"} \ No newline at end of file +{"paths": {"admin/js/vendor/select2/i18n/bg.js": "admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js", "admin/js/vendor/select2/i18n/en.js": "admin/js/vendor/select2/i18n/en.cf932ba09a98.js", "admin/js/vendor/select2/i18n/lt.js": "admin/js/vendor/select2/i18n/lt.23c7ce903300.js", "admin/js/vendor/select2/i18n/zh-TW.js": "admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js", "admin/js/vendor/select2/i18n/is.js": "admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js", "admin/js/vendor/select2/i18n/vi.js": "admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js", "admin/js/vendor/select2/i18n/sk.js": "admin/js/vendor/select2/i18n/sk.33d02cef8d11.js", "admin/js/vendor/select2/i18n/cs.js": "admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js", "admin/js/vendor/select2/i18n/ps.js": "admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js", "admin/js/vendor/select2/i18n/hy.js": "admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js", "admin/js/vendor/select2/i18n/eu.js": "admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js", "admin/js/vendor/select2/i18n/nl.js": "admin/js/vendor/select2/i18n/nl.997868a37ed8.js", "admin/js/vendor/select2/i18n/tk.js": "admin/js/vendor/select2/i18n/tk.7c572a68c78f.js", "admin/js/vendor/select2/i18n/sr-Cyrl.js": "admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js", "admin/js/vendor/select2/i18n/az.js": "admin/js/vendor/select2/i18n/az.270c257daf81.js", "admin/js/vendor/select2/i18n/he.js": "admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js", "admin/js/vendor/select2/i18n/af.js": "admin/js/vendor/select2/i18n/af.4f6fcd73488c.js", "admin/js/vendor/select2/i18n/ms.js": "admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js", "admin/js/vendor/select2/i18n/uk.js": "admin/js/vendor/select2/i18n/uk.8cede7f4803c.js", "admin/js/vendor/select2/i18n/sr.js": "admin/js/vendor/select2/i18n/sr.5ed85a48f483.js", "admin/js/vendor/select2/i18n/sv.js": "admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js", "admin/js/vendor/select2/i18n/es.js": "admin/js/vendor/select2/i18n/es.66dbc2652fb1.js", "admin/js/vendor/select2/i18n/ka.js": "admin/js/vendor/select2/i18n/ka.2083264a54f0.js", "admin/js/vendor/select2/i18n/dsb.js": "admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js", "admin/js/vendor/select2/i18n/hi.js": "admin/js/vendor/select2/i18n/hi.70640d41628f.js", "admin/js/vendor/select2/i18n/tr.js": "admin/js/vendor/select2/i18n/tr.b5a0643d1545.js", "admin/js/vendor/select2/i18n/ne.js": "admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js", "admin/js/vendor/select2/i18n/ru.js": "admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js", "admin/js/vendor/select2/i18n/sl.js": "admin/js/vendor/select2/i18n/sl.131a78bc0752.js", "admin/js/vendor/select2/i18n/hsb.js": "admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js", "admin/js/vendor/select2/i18n/id.js": "admin/js/vendor/select2/i18n/id.04debded514d.js", "admin/js/vendor/select2/i18n/de.js": "admin/js/vendor/select2/i18n/de.8a1c222b0204.js", "admin/js/vendor/select2/i18n/bs.js": "admin/js/vendor/select2/i18n/bs.91624382358e.js", "admin/js/vendor/select2/i18n/th.js": "admin/js/vendor/select2/i18n/th.f38c20b0221b.js", "admin/js/vendor/select2/i18n/mk.js": "admin/js/vendor/select2/i18n/mk.dabbb9087130.js", "admin/js/vendor/select2/i18n/zh-CN.js": "admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js", "admin/js/vendor/select2/i18n/km.js": "admin/js/vendor/select2/i18n/km.c23089cb06ca.js", "admin/js/vendor/select2/i18n/ca.js": "admin/js/vendor/select2/i18n/ca.a166b745933a.js", "admin/js/vendor/select2/i18n/hr.js": "admin/js/vendor/select2/i18n/hr.a2b092cc1147.js", "admin/js/vendor/select2/i18n/ar.js": "admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js", "admin/js/vendor/select2/i18n/pl.js": "admin/js/vendor/select2/i18n/pl.6031b4f16452.js", "admin/js/vendor/select2/i18n/pt.js": "admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js", "admin/js/vendor/select2/i18n/hu.js": "admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js", "admin/js/vendor/select2/i18n/ja.js": "admin/js/vendor/select2/i18n/ja.170ae885d74f.js", "admin/js/vendor/select2/i18n/fr.js": "admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js", "admin/js/vendor/select2/i18n/ko.js": "admin/js/vendor/select2/i18n/ko.e7be6c20e673.js", "admin/js/vendor/select2/i18n/el.js": "admin/js/vendor/select2/i18n/el.27097f071856.js", "admin/js/vendor/select2/i18n/fi.js": "admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js", "admin/js/vendor/select2/i18n/da.js": "admin/js/vendor/select2/i18n/da.766346afe4dd.js", "admin/js/vendor/select2/i18n/gl.js": "admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js", "admin/js/vendor/select2/i18n/lv.js": "admin/js/vendor/select2/i18n/lv.08e62128eac1.js", "admin/js/vendor/select2/i18n/ro.js": "admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js", "admin/js/vendor/select2/i18n/it.js": "admin/js/vendor/select2/i18n/it.be4fe8d365b5.js", "admin/js/vendor/select2/i18n/fa.js": "admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js", "admin/js/vendor/select2/i18n/nb.js": "admin/js/vendor/select2/i18n/nb.da2fce143f27.js", "admin/js/vendor/select2/i18n/pt-BR.js": "admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js", "admin/js/vendor/select2/i18n/bn.js": "admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js", "admin/js/vendor/select2/i18n/sq.js": "admin/js/vendor/select2/i18n/sq.5636b60d29c9.js", "admin/js/vendor/select2/i18n/et.js": "admin/js/vendor/select2/i18n/et.2b96fd98289d.js", "admin/js/vendor/xregexp/xregexp.min.js": "admin/js/vendor/xregexp/xregexp.min.b0439563a5d3.js", "admin/js/vendor/xregexp/xregexp.js": "admin/js/vendor/xregexp/xregexp.efda034b9537.js", "admin/js/vendor/xregexp/LICENSE.txt": "admin/js/vendor/xregexp/LICENSE.bf79e414957a.txt", "admin/js/vendor/select2/LICENSE.md": "admin/js/vendor/select2/LICENSE.f94142512c91.md", "admin/js/vendor/select2/select2.full.js": "admin/js/vendor/select2/select2.full.c2afdeda3058.js", "admin/js/vendor/select2/select2.full.min.js": "admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js", "admin/js/vendor/jquery/jquery.min.js": "admin/js/vendor/jquery/jquery.min.dc5e7f18c8d3.js", "admin/js/vendor/jquery/jquery.js": "admin/js/vendor/jquery/jquery.23c7c5d2d131.js", "admin/js/vendor/jquery/LICENSE.txt": "admin/js/vendor/jquery/LICENSE.75308107741f.txt", "admin/css/vendor/select2/select2.css": "admin/css/vendor/select2/select2.a2194c262648.css", "admin/css/vendor/select2/LICENSE-SELECT2.md": "admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md", "admin/css/vendor/select2/select2.min.css": "admin/css/vendor/select2/select2.min.9f54e6414f87.css", "babybuddy/img/core/child-placeholder.png": "babybuddy/img/core/child-placeholder.7c0a81f0d7f0.png", "rest_framework/docs/js/api.js": "rest_framework/docs/js/api.c9743eab7a4f.js", "rest_framework/docs/js/jquery.json-view.min.js": "rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js", "rest_framework/docs/js/highlight.pack.js": "rest_framework/docs/js/highlight.pack.479b5f21dcba.js", "rest_framework/docs/img/favicon.ico": "rest_framework/docs/img/favicon.5195b4d0f3eb.ico", "rest_framework/docs/img/grid.png": "rest_framework/docs/img/grid.a4b938cf382b.png", "rest_framework/docs/css/highlight.css": "rest_framework/docs/css/highlight.e0e4d973c6d7.css", "rest_framework/docs/css/jquery.json-view.min.css": "rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css", "rest_framework/docs/css/base.css": "rest_framework/docs/css/base.3208b6cc4466.css", "admin/js/admin/RelatedObjectLookups.js": "admin/js/admin/RelatedObjectLookups.b4d76b6aaf0b.js", "admin/js/admin/DateTimeShortcuts.js": "admin/js/admin/DateTimeShortcuts.5548f99471bf.js", "admin/img/gis/move_vertex_off.svg": "admin/img/gis/move_vertex_off.7a23bf31ef8a.svg", "admin/img/gis/move_vertex_on.svg": "admin/img/gis/move_vertex_on.0047eba25b67.svg", "babybuddy/font/babybuddy.svg": "babybuddy/font/babybuddy.92b0e8730a39.svg", "babybuddy/font/babybuddy.ttf": "babybuddy/font/babybuddy.5b508a0e4073.ttf", "babybuddy/font/babybuddy.woff": "babybuddy/font/babybuddy.ecc1b92002b6.woff", "babybuddy/font/babybuddy.eot": "babybuddy/font/babybuddy.62cc646af202.eot", "babybuddy/font/babybuddy.woff2": "babybuddy/font/babybuddy.34582a429c60.woff2", "babybuddy/logo/icon-brand.png": "babybuddy/logo/icon-brand.32cbedf6aee3.png", "babybuddy/logo/icon.png": "babybuddy/logo/icon.df80640f0465.png", "babybuddy/logo/logo.png": "babybuddy/logo/logo.62870041cc83.png", "babybuddy/js/graph.js": "babybuddy/js/graph.c70d07f5822f.js", "babybuddy/js/app.js": "babybuddy/js/app.6477a025d778.js", "babybuddy/js/vendor.js": "babybuddy/js/vendor.f939b61597b3.js", "babybuddy/root/favicon.svg": "babybuddy/root/favicon.12fe726d0bac.svg", "babybuddy/css/app.css": "babybuddy/css/app.d83022714670.css", "rest_framework/js/jquery-3.5.1.min.js": "rest_framework/js/jquery-3.5.1.min.dc5e7f18c8d3.js", "rest_framework/js/csrf.js": "rest_framework/js/csrf.969930007329.js", "rest_framework/js/default.js": "rest_framework/js/default.5b08897dbdc3.js", "rest_framework/js/bootstrap.min.js": "rest_framework/js/bootstrap.min.2f34b630ffe3.js", "rest_framework/js/prettify-min.js": "rest_framework/js/prettify-min.709bfcc456c6.js", "rest_framework/js/coreapi-0.1.1.js": "rest_framework/js/coreapi-0.1.1.8851fb9336c9.js", "rest_framework/js/ajax-form.js": "rest_framework/js/ajax-form.0ea6e6052ab5.js", "rest_framework/fonts/fontawesome-webfont.woff": "rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff", "rest_framework/fonts/glyphicons-halflings-regular.eot": "rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot", "rest_framework/fonts/fontawesome-webfont.ttf": "rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf", "rest_framework/fonts/glyphicons-halflings-regular.woff2": "rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2", "rest_framework/fonts/glyphicons-halflings-regular.svg": "rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg", "rest_framework/fonts/fontawesome-webfont.svg": "rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg", "rest_framework/fonts/glyphicons-halflings-regular.ttf": "rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf", "rest_framework/fonts/fontawesome-webfont.eot": "rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot", "rest_framework/fonts/glyphicons-halflings-regular.woff": "rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff", "rest_framework/img/glyphicons-halflings-white.png": "rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png", "rest_framework/img/glyphicons-halflings.png": "rest_framework/img/glyphicons-halflings.90233c9067e9.png", "rest_framework/img/grid.png": "rest_framework/img/grid.a4b938cf382b.png", "rest_framework/css/prettify.css": "rest_framework/css/prettify.a987f72342ee.css", "rest_framework/css/bootstrap-tweaks.css": "rest_framework/css/bootstrap-tweaks.46ed116b0edd.css", "rest_framework/css/bootstrap-theme.min.css": "rest_framework/css/bootstrap-theme.min.66b84a04375e.css", "rest_framework/css/font-awesome-4.0.3.css": "rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css", "rest_framework/css/default.css": "rest_framework/css/default.789dfb5732d7.css", "rest_framework/css/bootstrap.min.css": "rest_framework/css/bootstrap.min.77017a69879a.css", "admin/js/SelectFilter2.js": "admin/js/SelectFilter2.d250dcb52a9a.js", "admin/js/popup_response.js": "admin/js/popup_response.c6cc78ea5551.js", "admin/js/prepopulate_init.js": "admin/js/prepopulate_init.e056047b7a7e.js", "admin/js/jquery.init.js": "admin/js/jquery.init.b7781a0897fc.js", "admin/js/nav_sidebar.js": "admin/js/nav_sidebar.7605597ddf52.js", "admin/js/prepopulate.js": "admin/js/prepopulate.bd2361dfd64d.js", "admin/js/SelectBox.js": "admin/js/SelectBox.8161741c7647.js", "admin/js/core.js": "admin/js/core.ccd84108ec57.js", "admin/js/cancel.js": "admin/js/cancel.ecc4c5ca7b32.js", "admin/js/change_form.js": "admin/js/change_form.9d8ca4f96b75.js", "admin/js/collapse.js": "admin/js/collapse.f84e7410290f.js", "admin/js/autocomplete.js": "admin/js/autocomplete.b6b77d0e5906.js", "admin/js/urlify.js": "admin/js/urlify.25cc3eac8123.js", "admin/js/actions.js": "admin/js/actions.a6d23e8853fd.js", "admin/js/calendar.js": "admin/js/calendar.f8a5d055eb33.js", "admin/js/inlines.js": "admin/js/inlines.7596b7fd289e.js", "admin/fonts/README.txt": "admin/fonts/README.ab99e6b541ea.txt", "admin/fonts/Roboto-Light-webfont.woff": "admin/fonts/Roboto-Light-webfont.c73eb1ceba33.woff", "admin/fonts/Roboto-Regular-webfont.woff": "admin/fonts/Roboto-Regular-webfont.35b07eb2f871.woff", "admin/fonts/Roboto-Bold-webfont.woff": "admin/fonts/Roboto-Bold-webfont.50d75e48e0a3.woff", "admin/fonts/LICENSE.txt": "admin/fonts/LICENSE.d273d63619c9.txt", "admin/img/README.txt": "admin/img/README.a70711a38d87.txt", "admin/img/icon-alert.svg": "admin/img/icon-alert.034cc7d8a67f.svg", "admin/img/tooltag-add.svg": "admin/img/tooltag-add.e59d620a9742.svg", "admin/img/icon-calendar.svg": "admin/img/icon-calendar.ac7aea671bea.svg", "admin/img/calendar-icons.svg": "admin/img/calendar-icons.39b290681a8b.svg", "admin/img/icon-addlink.svg": "admin/img/icon-addlink.d519b3bab011.svg", "admin/img/icon-deletelink.svg": "admin/img/icon-deletelink.564ef9dc3854.svg", "admin/img/icon-clock.svg": "admin/img/icon-clock.e1d4dfac3f2b.svg", "admin/img/tooltag-arrowright.svg": "admin/img/tooltag-arrowright.bbfb788a849e.svg", "admin/img/icon-unknown-alt.svg": "admin/img/icon-unknown-alt.81536e128bb6.svg", "admin/img/selector-icons.svg": "admin/img/selector-icons.b4555096cea2.svg", "admin/img/LICENSE": "admin/img/LICENSE.2c54f4e1ca1c", "admin/img/icon-unknown.svg": "admin/img/icon-unknown.a18cb4398978.svg", "admin/img/icon-changelink.svg": "admin/img/icon-changelink.18d2fd706348.svg", "admin/img/search.svg": "admin/img/search.7cf54ff789c6.svg", "admin/img/sorting-icons.svg": "admin/img/sorting-icons.3a097b59f104.svg", "admin/img/icon-no.svg": "admin/img/icon-no.439e821418cd.svg", "admin/img/inline-delete.svg": "admin/img/inline-delete.fec1b761f254.svg", "admin/img/icon-yes.svg": "admin/img/icon-yes.d2f9f035226a.svg", "admin/img/icon-viewlink.svg": "admin/img/icon-viewlink.41eb31f7826e.svg", "admin/css/dashboard.css": "admin/css/dashboard.be83f13e4369.css", "admin/css/base.css": "admin/css/base.1f418065fc2c.css", "admin/css/widgets.css": "admin/css/widgets.694d845b2cb1.css", "admin/css/responsive.css": "admin/css/responsive.b128bdf0edef.css", "admin/css/autocomplete.css": "admin/css/autocomplete.4a81fc4242d0.css", "admin/css/fonts.css": "admin/css/fonts.168bab448fee.css", "admin/css/nav_sidebar.css": "admin/css/nav_sidebar.0fd434145f4d.css", "admin/css/changelists.css": "admin/css/changelists.c70d77c47e69.css", "admin/css/forms.css": "admin/css/forms.1d89ec6432f5.css", "admin/css/responsive_rtl.css": "admin/css/responsive_rtl.e13ae754cceb.css", "admin/css/rtl.css": "admin/css/rtl.4bc23eb90919.css", "admin/css/login.css": "admin/css/login.c35adf41bb6e.css", "import_export/action_formats.js": "import_export/action_formats.11c3e817b80a.js", "import_export/import.css": "import_export/import.87299a479910.css"}, "version": "1.0"} \ No newline at end of file